2012-01-28 25 views
0

考慮我有類似以下的數組:如何通過linq獲取字符串數組中的max元素?

string[] Files = {"NO. 1", "NO. 2", "NO. 3", "NO. 4", "NO. 5", "NO. 6", "NO. 7"}; 

我想找到的最大數量的元素。我如何通過C#中的Linq查詢來做到這一點?

+0

我不知道! :-( – moorara 2012-01-28 08:44:44

+0

閱讀關於linq'linq Select','int.Parse','linq Max','string.indexOf','string.Substring':P – 2012-01-28 08:46:47

+0

你是什麼意思與最大數目?你想解析「NO。X」字符串中的數字,其中X是所需的數字並選擇最高的字符串? – stmax 2012-01-28 08:52:01

回答

5

如果你正在使用LINQ來創建對象(而不是數據庫)......那麼這就完成了。

string[] Files = { "NO. 1", "NO. 2", "NO. 3", "NO. 4", "NO. 5", "NO. 6", "NO. 7" }; 
var max = Files.OrderByDescending(x => int.Parse(x.Replace("NO. ", ""))).First(); 

確切的字符串操作當然會改變,如果您的列表與您發佈的內容有些不同。

可能有更優雅的LINQ函數可以使用,但這些都是我找到的。

+0

我最初發布的答案是 'var z = Files.Max(x => int.Parse(x.Replace(」NO。「,」「 )));''檢索最大數量,而不是最大元素 – perfectionist 2012-01-28 08:57:46

+2

您可以用'First()'替換'Take(1).Single()'。 – Joey 2012-01-28 09:13:26

+0

謝謝@Joey - 更新 – perfectionist 2012-01-28 09:24:30

相關問題