2014-08-29 155 views
2

我怎樣才能做到這一點選擇選擇查詢

我的第一個列表

List<string> lstParams = new List<string> { "Home", "Computer", "Fishing" }; 
List<string> lstIgnore_If_Have = new List<string> { "me", "hi" }; 

現在我要檢查lstParams每一個元素,如果元素有lstIgnore_If_Have任何物體不要選擇它。

結果lstParams將如下

「計算機」

如何編寫這樣LINQ查詢?

我下面進行,但我無法完成它

lstParams = lstParams 
    .Where(pr => pr.Contains(lstIgnore_If_Have)) == false).ToList<string>(); 

回答

7

在這裏你去:

var v = lstParams.Where (p => ! lstIgnore_If_Have.Any(i=> p.Contains(i))); 

只要確保沒有第二列表包含在第一個(使用Any )。
結果是「計算機」。

1

你可以使用:

lstParams = lstParams.Where(x => lstIgnore_If_Have.All(s => !x.Contains(s))) 
        .ToList();