2012-06-28 6 views
7

からの値が含まれているリスト項目を除外:二つのリストがあります別のリスト

List<string> excluded = new List<string>() { ".pdf", ".jpg" }; 
List<string> dataset = new List<string>() {"valid string", "invalid string.pdf", "invalid string2.jpg","valid string 2.xml" }; 

私はフィルタアウトすることができますどのような値を「除外」リストからいずれかのキーワードを含む「データセット」リストから?

+1

abatishchevが述べているように、特に大きい場合は、 'HashSet 'を '除外 'にしてください。おかげさまで – Jodrell

+0

ありがとうございます。私たちがHashSetsにいる場合、このトピックの周りにはこのリンクを張ります:http://stackoverflow.com/questions/1247442/when-should-i-use-the-hashsett-type – lekso

答えて

14
var results = dataset.Where(i => !excluded.Any(e => i.Contains(e))); 
6

試してみてください。

var result = from s in dataset 
      from e in excluded 
      where !s.Contains(e) 
      select e; 
0
var result=dataset.Where(x=>!excluded.Exists(y=>x.Contains(y))); 

除外リストが空の場合これも動作します。

関連する問題