2015-07-03 82 views
0

說多個相同的價值觀我有具有以下值如何檢查是否有在數組

ABAABC

數組如何運行,這將增加該整數變量代碼, b和c根據它們發生在陣列

+0

作爲一個提示,我建議運行一個不同的列表,然後在另一個列表上使用相交(或可能的Count())方法... –

回答

0

看一下例子在https://msdn.microsoft.com/en-us/library/vstudio/bb535181%28v=vs.100%29.aspx

,它基本上是你所需要的底部的時間量。

var array = new string[] {"A", "B", "A", "A", "B", "C" }; 
int a = array.Count(p => p == "A"); 
+0

如果你有10個'字母',你必須遍歷整個列表10次才能得到這樣計算 –

+0

微秒在現實中,至少這是我的假設,在OP中沒有任何相反的地方。 – Lukos

7

您可以使用GroupBy

var array = new string[] {"A", "B", "A", "A", "B", "C" }; 

var counts = array 
    .GroupBy(letter => letter) 
    .Select(g => new { Letter = g.Key, Count = g.Count() }); 

如果你想獲得單獨計數,你可以把一切都變成字典

var countsDictionary = array 
    .GroupBy(letter => letter) 
    .ToDictionary(g => g.Key, g => g.Count()); 

var aCount = countsDictionary["A"]; 
var bCount = countsDictionary["B"]; 
//etc... 
+0

加上一個戴夫 - 正是我會建議(和/或與計數不同) –

+0

你能解釋如何工作 – Bone

+0

如果這些值不是字母,而是像文字那樣。 – Bone