2010-03-29 76 views
8

我有一個對象(產品),具有類型爲'array'的屬性
我有一個輸入標籤數組過濾。LINQ - 數組屬性包含來自另一個數組的元素

...但是這並不完全工作:

List<string> filterTags = new List<string>() { "tag1", "tag3" }; 

var matches = from p in products 
    where p.Tags.Contains(filterTags) 
    select p; 

任何建議? 謝謝。

回答

19

Contains真的要達到什麼目的? Tags中的所有項目是否需要存在於filterTags?或者至少有一個?後者使用Any,前者使用All。你where線將變爲:

where p.Tags.Any(tag => filterTags.Contains(tag)) 

where p.Tags.All(tag => filterTags.Contains(tag)) 
+0

謝謝...偉大。這實際上意味着「任何」。 .... 「...顯示包含一個或多個輸入標籤的所有產品」。我會放棄這一點。謝謝! – Rob 2010-03-29 16:16:19

+0

作爲任何感興趣的人的LINQ:'context.Products.Where(p => p.Tags.Any(tag => filterTags.Contains(tag)))' – 2016-08-18 14:32:21

相關問題