2012-06-28 20 views
7

gelen değerleri içeren liste öğelerini dışla:İki liste vardır başka bir listeye

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" }; 

Ben filtre aşımı nasıl değerler "dışlanmış" listeden herhangi bir anahtar kelimeyi ihtiva "veri kümesi" listesinden?

+1

Abatishchev'in söylediği gibi, özellikle büyükse, 'Hashded ' öğesini 'hariç tut' yapın. – Jodrell

+0

Teşekkürler. HashSets'deysek, bu bağlantıyı bu konuyla ilgili bir tartışmaya göndeririz: http://stackoverflow.com/questions/1247442/when-should-i-use-the-hashsett-type – lekso

cevap

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

Dene: dışlanan listesi boşken

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))); 

Bu aynı zamanda çalışır.

İlgili konular