使用linq过滤带有动态条件字符串的通用列表

时间:2014-08-26 11:06:08

标签: c# linq

我正在使用.NET 3.5

我有一个Company.cs对象列表。

我想用LINQ动态填写此列表,这意味着用户在文本框中输入此字符串:

(CompanyName = "Google") OR 
(Country = "Czech Republic") or
 (CompanyName = "Microsoft") AND
 (Country = "USA")

如何将此字符串与linq和.Where()子句一起使用来过滤现有的公司对象?

或者使用DataTable并使用Select方法是否更好?

1 个答案:

答案 0 :(得分:-2)

查看Dynamic LINQ library

编辑:

对不起,我误解了你。

如果您有公司和国家/地区列表,请执行以下操作:

var compNames = new[] { "Boo", "Foo" };
var countries = new[] { "Germany", "Bubu" };

然后你可以像这样过滤:

from c in companies 
where compNames.Contains(c.Name) || countries.Contains(c.Country)
select c