C# 使用linq筛选具有动态条件字符串的常规列表

C# 使用linq筛选具有动态条件字符串的常规列表,c#,linq,C#,Linq,我正在使用.NET3.5 我有Company.cs对象的列表 我想使用LINQ动态填充此列表,这意味着用户在文本框中输入此字符串: (CompanyName = "Google") OR (Country = "Czech Republic") or (CompanyName = "Microsoft") AND (Country = "USA") 如何将此字符串与linq和.Where子句一起使用以筛选现有的公司对象 还是使用DataTable并使用Select方法更好?请查看 编辑:

我正在使用.NET3.5

我有Company.cs对象的列表

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

(CompanyName = "Google") OR 
(Country = "Czech Republic") or
 (CompanyName = "Microsoft") AND
 (Country = "USA")
如何将此字符串与linq和.Where子句一起使用以筛选现有的公司对象

还是使用DataTable并使用Select方法更好?

请查看

编辑:

对不起,我误解你了

如果您有如下公司和国家/地区列表:

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

这似乎是一个令人讨厌的UI设计,需要用户输入如此复杂的内容。。。不是吗?考虑修改你的UI,使用多个文本框和/或一些DROPDONE,每一个都在一个字段上过滤。他需要在编译时知道一个特定的NO.过滤器,所以他为什么需要动态LINQ?@ SiRajman和Yes。正如我所说,条件是一个由用户定义的字符串,可以是一个了解sql的顾问。。。我想将LINQ与这个动态字符串一起使用,动态LINQ库看起来不错!