2013-05-13 83 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