在LINQ查询中动态设置列名
我正在尝试写一个方法,它允许我在不同的列上搜索不同的数据表 到目前为止,我有以下几点:在LINQ查询中动态设置列名,linq,dynamic,Linq,Dynamic,我正在尝试写一个方法,它允许我在不同的列上搜索不同的数据表 到目前为止,我有以下几点: string selectedValue; string searchColumn; string targetColumn; var results = (from a in dt.AsEnumerable() where a.Field<string>(searchColumn) == selectedValue
string selectedValue;
string searchColumn;
string targetColumn;
var results = (from a in dt.AsEnumerable()
where a.Field<string>(searchColumn) == selectedValue
select new
{
targetColumn = a.Field<string>(targetColumn)
}).Distinct();
字符串selectedValue;
字符串搜索列;
字符串targetColumn;
var结果=(来自dt.AsEnumerable()中的a)
其中a.Field(searchColumn)=selectedValue
选择新的
{
targetColumn=a.字段(targetColumn)
}).Distinct();
哪种类型完成了任务,但我只剩下列名targetColumn
,而不是我想要的实际列名
有没有办法解决这个问题
提前谢谢
CM我将LINQ转换为数据表
public List<DataRow> Where(this DataTable dt, Func<DataRow, bool> pred)
{
List<DataRow> res = new List<DataRow>();
try {
if (dt != null && dt.Rows.Count > 0) {
for (i = 0; i <= dt.Rows.Count - 1; i++) {
if (pred(dt(i))) {
res.Add(dt(i));
}
}
}
} catch (Exception ex) {
PromptMsg(ex);
}
return res;
}
我认为不是,这个问题类似于
var RowsList = dt.Where(f => f("SomeField").toString() == "SomeValue" ||
f("OtherField") > 5);