2013-05-13 111 views
2

LINQ聲明我有一個布爾陣列和一個列表:對泛型列表

bool[ ] searchable 

List<T> allData 

我想要做的就是像下面

allData.Where(c => searchable[0] && c[0].Contains("das") || 
        searchable[1] && c[1].Contains("das") || 
        searchable[2] && c[2].Contains("das") 
        ... 
      ); 

我如何構建這個LINQ的功能?

+1

'T'是一個數組? – 2013-05-13 08:45:34

+1

你想達到什麼目的?什麼是'T'?它是'串'嗎? – 2013-05-13 08:45:46

回答

5

使用Where提供您的篩選回調與元素的索引this overload正在與元素本身一起考慮:

var results = allData.Where((c, i) => searchable[i] && c.Contains("das")); 
+1

@ user944592:你需要在任何'c'上寫一個方法。您也可以使用反射來動態地執行它,但速度會降低100倍。 – Jon 2013-05-13 09:31:33