我正在尝试编写一种方法,允许我在不同的列上搜索不同的DataTable。
到目前为止,我有以下内容:
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();
哪种方式可以完成工作,但我的列名称为targetColumn
,而不是我想要的实际列名。
有什么方法可以解决这个问题吗?
提前致谢
CM
答案 0 :(得分:1)
我将 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);