【发布时间】:2015-03-04 11:53:24
【问题描述】:
我有一个 DataSet 和一个 DataTable,现在我想要一种通用的方法来检查不同的 LINQ 查询是否返回任何匹配项。
例如。假设我有一个名为 MyTable 的表,其中包含以下数据。
Col1 Col2 Col3 Col4
A1 B1 C1 D1
A2 B2 C2 D2
A3 B3 C3 D3
我现在想要一个函数Conflicting,我可以使用任意数量的参数来调用它,这些参数表示列和值。如果所有参数匹配任何行,Conflicting 应该返回 true。
Conflicting(MyTable, (Col1,A1)) //returns True
Conflicting(MyTable, (Col1,A1), (Col2,B1),(Col3,C1), (Col4,D1)) //returns True
Conflicting(MyTable, (Col1,A1), (Col2,D1)) //returns False
这是我现在拥有的代码,问题是该代码仅用于检查是否存在将 ONE 列设置为特定值的行。
public static bool Conflicting(string table, string colum, string value)
{
DataTable dt = state.Tables[table];
var lines =
from s in dt.AsEnumerable()
where s.Field<string>(parameter) == value
select new
{
ID = s.Field<Int32>(table + "ID")
};
var count = lines.Count();
return count > 0;
}
【问题讨论】:
标签: c# linq linq-to-dataset