2015-10-19 82 views
-6

我有List包含字符串記錄列表。我想獲得所有記錄中長度最大的記錄。 如何從列表中獲取最大長度記錄?如何從列表<String>獲取最大長度記錄?

+1

直截了當的解決方案:迭代列表並將當前記錄長度與以前找到的最大值進行比較。你試過了嗎? –

+1

此外,你有沒有嘗試複製你的*精確*問題標題到谷歌? – Sayse

+0

'list.Select(c => c.Length).Max()'或者什麼? –

回答

0

如果你想找到所有最長的字符串:

IEnumerable<string> longestStrings = list 
    .GroupBy(str => str == null ? 0 : str.Length) 
    .OrderByDescending(g => g.Key) // order by length 
    .First(); 

另一種方法,這可能是在內存消耗方面更便宜:

int maxLength = list.Max(str=> str == null ? 0 : str.Length); 
longestStrings = list 
    .Where(str => (str == null ? 0 : str.Length) == maxLength); 
+0

如果輸入是一個雙列舉便宜的列表,我寧願使用兩次傳遞的方法。首先'Max'然後'Where(len == max)' – CodesInChaos

0

這可能做的伎倆爲您

List<string> strings = new List<string>(); 
strings.Add("001"); 
strings.Add("00121"); 
strings.Add("001123123"); 
strings.Add("00144"); 


string longest = strings.OrderByDescending(s => s.Length).First();