【发布时间】:2014-01-06 17:24:54
【问题描述】:
所以我有这门课:
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")
但是,我不断收到所有的废话。我不想要。
【问题讨论】:
-
您的示例列表不相交(即
blahs中的任何条目在列表bleh中都没有Number)。这是故意的吗? -
那是因为您检查集合
[10233, 21209]是否包含0233和1209。它没有,所以这些没有被过滤。您必须添加一个附加层来检查集合的每个条目。 -
你需要解释一下为什么
bleh中的数字以它们的索引(1xxx, 2xxx)为前缀,以及这个索引意味着什么逻辑。