.net LINQ中指向对象的字符串

.net LINQ中指向对象的字符串,.net,vb.net,linq,linq-to-objects,.net,Vb.net,Linq,Linq To Objects,我有这样一个linq查询: Elementos = From b In Elementos Where b.Value.IdGrupo = 0 Select b “Elementos”是一本字典(关于long,MyObject)。MyObject大约有50个属性 我遇到的问题是,我有一个新的要求,即接受带有“where”条件的字符串参数。类似于“property1>10和属性y2类似于'anystring'或property3您可以尝试类似的方法,您可以通过附加Where子句来构造查询。每个子

我有这样一个linq查询:

Elementos = From b In Elementos Where b.Value.IdGrupo = 0 Select b
“Elementos”是一本字典(关于long,MyObject)。MyObject大约有50个属性


我遇到的问题是,我有一个新的要求,即接受带有“where”条件的字符串参数。类似于
“property1>10和属性y2类似于'anystring'或property3您可以尝试类似的方法,您可以通过附加Where子句来构造查询。每个子句都将被视为and

public class MyObject
{
    public String Bar {get;set;}
    public String Foo {get;set;}
}

var list = new[] { new MyObject { Foo= "Foo" }, new MyObject { Foo = "Foo", Bar = "Bar" }};
var query = list.Where(o => o.Foo == "Foo");
if(/* Some Condition */)
{
    query = query.Where(o => o.Bar == "Bar");
}
您可以使用:


Dim filter As String=“property1>10和property2,如'anystring'或property3-1:这仅在条件的可能值非常有限的情况下才起作用;问题中给出的示例是SQL(-ish)这一事实强烈暗示了事实并非如此。嗨,谢谢你的回答。因为我得到了一个字符串条件,所以如果不解析字符串,我就看不出会是什么/*some condition*/嗨!谢谢你的回答。这似乎正是我所需要的;但是,我已经下载了dynamic linq演示项目,但是当我将dynamic.vb类添加到我的项目中时,system.*命名空间中声明的所有其他对象都无法识别。我尝试将示例项目转换为库类,构建一个DLL并将其添加到我的项目中,但是,尽管我没有收到这样的错误,即使将System.Linq.Dynamic导入到我的类中,我也无法使用元素。其中(“…”),因为我收到错误(无法使用这些参数调用函数)。谢谢你的帮助!非常感谢。您好,我已经解决了前面的问题重命名动态类名称空间。现在我尝试在“anystring”中使用通配符。。。
Dim filter As String = "property1>10 and property2 like 'anystring' or property3<=25"
Dim results = Elementos.Where(filter)