【发布时间】:2012-03-21 18:00:08
【问题描述】:
我想离开
var selectData = (from i in data
where i.Name == "Bob1"
select i);
到
var selectData = (from i in data
select i).Where("Name==Bob1");
我尝试了各种方法(AsQueryable、Where<SomeData>),但无法编译第二种形式。
我不太了解 C# 的通用扩展方法。 <Tsource> 对我来说没有意义,所以这可能是问题所在。另外,我不明白为什么当智能感知只显示.Where<>(通用)时我可以输入.Where()。我希望看到第二个 Where 没有通用符号...唉,我没有。
类
public class SomeData
{
public string Name { get; set; }
public string Address { get; set; }
}
更新
关于如何使用 Where() 似乎有些困惑,这很可能是我的错。请参阅related 问题。根据这个答案,where 子句中的属性名称是完全合法的。我需要该属性保持为字符串。如果这意味着需要动态 LINQ,那就这样吧……这就是我所需要的。
【问题讨论】:
-
这似乎与另一个帖子相似。也许这会有所帮助 [LINQ - 动态 WHERE 子句?][1] [1]:stackoverflow.com/questions/848415/linq-dynamic-where-clause
-
您需要动态查询您的属性名称吗?你能确认一下吗?
-
我还是不明白。如果您正在寻找如何进行动态 Linq,那么您在 other question you asked 上已经引用的答案是否也不是这个问题的答案?
-
@Paul Ruane - 我正在尝试让另一个答案起作用。我认为动态 LINQ 只是 .NET OOB 功能的一部分。而且我在做一些语法不正确的事情。显然情况并非如此。
-
@P.Brian.Mackey:我快速阅读了一遍。看来可能是separate download。
标签: c# dynamic-linq