所以我有这个课程:
class Blah
{
public string Number { get; set; }
public string Title { get; set; }
public Blah(string nums, string ttls)
{
Number = nums;
Title = ttls;
}
}
我想用数字列表(字符串)过滤它。
所以我想做这样的事情:
List<Blah> blahs = new List<Blah> {Blah("0233", "Ho"), Blah("1209", "Ah"), Blah("2929", "Eh")};
List<string> bleh = new List<string> {"10233", "21209"};
List<Blah> missBlahs = (blahs.Where(b => !bleh.Contains(b.Number))).ToList<Blah>();
//Result: Blah("2929", "Eh")
然而,我一直在拿回整个清单。我不想要的。
答案 0 :(得分:2)
您是否要过滤掉任何Number
属性,该属性是List<String>
中任何值的子字符串?鉴于没有任何值直接匹配,这似乎是这种情况。如果是,请尝试以下
blahs
.Where(b => bleh.Any(x => x.Contains(b.Number))
.ToList();
答案 1 :(得分:0)
假设bleh列表中的第一个数字是拼写错误,这就是您想要的
List<Blah> blahs = new List<Blah> { new Blah("0233", "Ho"), new Blah("1209", "Ah"), new Blah("2929", "Eh") };
List<string> bleh = new List<string> { "0233", "1209" };
List<Blah> missedBlahs = blahs.FindAll(b => !bleh.Contains(b.Number));
//Result: Blah("2929", "Eh")