2017-10-11 56 views
-13

我有字符串[3]與數據:一個;一;三,一個如何計算出現字符串的次數

我需要計算哪一個字符串出現次數最多,有什麼想法?

+4

你嘗試過什麼嗎? –

+4

有很多想法。 – PaulF

+0

您是否知道以前的不同詞彙,只需要計數或完全動態?我想@C.Evenhuis做了一個很好的評論 – LenglBoy

回答

4

您可以使用此方法在數組中找到類型爲T的最顯示元素。 (使用System.Linq

public static T MostAppearing<T>(T[] array) 
{ 
    if (array == null) throw new ArgumentNullException("array"); 
    if (array.Length == 0) throw new ArgumentException("Array.Length is 0."); 

    return array.GroupBy(e => e).OrderByDescending(s => s.Count()).FirstOrDefault().Key; 
} 

感謝@ TimSchmelter的解決方案,還可以返回多個結果,假設有一些occurr同一時代的元素。

public static IEnumerable<T> MostAppearing<T>(T[] array) 
{ 
    if (array == null) throw new ArgumentNullException("array"); 
    if (array.Length == 0) throw new ArgumentException("Array.Length is 0."); 

    return array.GroupBy(s => s).GroupBy(g => g.Count()).OrderByDescending(g => g.Key).First().Select(g => g.Key); 
} 
+0

如果multiple經常出現相同,fe 「A」,「B」; 「A」,「B」,「C」'。該方法應返回'IEnumerable '。 –

+0

我不知道什麼是mostapprearing,throw and that => –

+0

@JustGalgaldas'MostAppearing'只是我們定義的方法的名稱。 'throw'產生一個異常來表明出了什麼問題,'=>'表示一個lambda表達式。 –

相關問題