2016-12-07 109 views
1

我有这个数组:如何计算数组中的元素数量?

var categoryGroups = new[] { 
    new CategoryGroupSource { Id = 1, Name = "Conversation" }, 
    new CategoryGroupSource { Id = 2, Name = "Business" }, 
    new CategoryGroupSource { Id = 3, Name = "Education" } 
}; 

我试图做这个计数:

categoryGroups.Count 

但它给我一个错误说这将只与列表一起工作。有人可以给我这方面的建议吗?

注意我也这样做:

foreach (CategoryGroupSource categoryGroup in categoryGroups) 
{ 
    db.Insert(categoryGroup); 
} 

确实为数组和列表在foreach工作?

+2

使用'Length',而不是'Count' – Rob

+0

在google/MSDN上可以很容易地找到答案 – CSharped

回答

4

的阵列

var categoryGroups = new[] { 
      new CategoryGroupSource { Id = 1, Name = "Conversation" }, 
      new CategoryGroupSource { Id = 2, Name = "Business" }, 
      new CategoryGroupSource { Id = 3, Name = "Education" } 
     }; 

int count = categoryGroups.Length; 

使用categoryGroups.Length确实为数组和列表在foreach工作?

是的。

Using foreach with Arrays (C# Programming Guide)

+0

使用array for Generic 的优点和缺点? – Aizen

+0

@Aizen热门问题http://stackoverflow.com/questions/434761/array-versus-listt-when-to-use-which – Damith

1

您可能已经使用

categoryGroups.Length 

每个数组的长度。在C#语言中,我们访问非null数组上的Length属性。长度没有括号,因为它是一个属性。它是只读的 - 你不能分配长度。

当然是foreach适用于数组和列表。如果你想看到阵列Why List is better than Arrays you can read more here

1

的foreach作品,并列出

计数没有元素的数组

变化

categoryGroups.Count 

categoryGroups.Length 
0

在。 NET,数组和字符串(这是技术上特殊的字符数组s)有一个Length属性,并且几乎每个其他集合都有一个用于此计数元素的Count属性。

除此之外,System.Linq命名空间为大多数集合实现的IEnumerable<T>接口提供了一个Count()扩展方法。所以对于一个数组,如果你是using System.Linq;,你也可以使用myArray.Count()

请注意,Count()是一种数组和实现IEnumerable<T>的任何集合的方法,而Count是一些集合的属性。

0

foreach适用于执行IEnumerable的所有类型。

您无法访问.count属性,因为它可用于列表类型,但您使用的是Array。

0

我同意,如果你只是想说数组中的值的数量,你可以只打印数组的长度值。

相关问题