我正在使用LINQ子查詢來獲取數組中所有最小長度的單詞。 我想用Lambda Expression來做。使用Lambda表達式的子查詢
var names = new[] { "Tom", "Dick", "Harry", "Mary", "Jay" }.AsQueryable();
(
from n in names
where n.Length == names.Min (n2 => n2.Length)
select n
)
輸出: 湯姆,周杰倫
感謝, Prakhar
Upvoted。看到有趣的鏈接線程,它確認每次調用'Min'方法,就像你說的那樣導致'O(n ** 2)'的複雜性。解決這個問題的另一種方法是int min = int.MaxValue; var minNames = names.OrderBy(s => s.Length).TakeWhile(s => min> =(min = s.Length))''但是這不會比你的解決方案好。 –