2016-12-07 95 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

我同意,如果你只是想說數組中的值的數量,你可以只打印數組的長度值。