考慮我有類似以下的數組:如何通過linq獲取字符串數組中的max元素?
string[] Files = {"NO. 1", "NO. 2", "NO. 3", "NO. 4", "NO. 5", "NO. 6", "NO. 7"};
我想找到的最大數量的元素。我如何通過C#中的Linq查詢來做到這一點?
考慮我有類似以下的數組:如何通過linq獲取字符串數組中的max元素?
string[] Files = {"NO. 1", "NO. 2", "NO. 3", "NO. 4", "NO. 5", "NO. 6", "NO. 7"};
我想找到的最大數量的元素。我如何通過C#中的Linq查詢來做到這一點?
如果你正在使用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函數可以使用,但這些都是我找到的。
我最初發布的答案是 'var z = Files.Max(x => int.Parse(x.Replace(」NO。「,」「 )));''檢索最大數量,而不是最大元素 – perfectionist 2012-01-28 08:57:46
您可以用'First()'替換'Take(1).Single()'。 – Joey 2012-01-28 09:13:26
謝謝@Joey - 更新 – perfectionist 2012-01-28 09:24:30
我不知道! :-( – moorara 2012-01-28 08:44:44
閱讀關於linq'linq Select','int.Parse','linq Max','string.indexOf','string.Substring':P – 2012-01-28 08:46:47
你是什麼意思與最大數目?你想解析「NO。X」字符串中的數字,其中X是所需的數字並選擇最高的字符串? – stmax 2012-01-28 08:52:01