簡體   English   中英

使用Lambda表達式的子查詢

[英]SubQuery using Lambda Expression

我正在使用LINQ子查詢來獲取數組中所有最小長度的單詞。 我想使用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

這將工作:

var minNames = names.Where(s => s.Length == names.Min(n=>n.Length));

但是它會評估列表中每個名稱的最小長度( O(n*n)復雜度),因此會更好:

var min = names.Min(s => s.Length); //calc. this only once
var minNames = names.Where(s => s.Length == min);

對我來說,這個問題似乎有點含糊,但這是您要找的東西嗎?

 names.Where (x => x.Length == names.Min (n2 => n2.Length));

這應該可以幫助您:

    var minNames = names.Where(c => c.Length == names.Min(n => n.Length))
            .ToArray();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM