我有一个DataView过滤器
inputView.RowFilter = "isnull(" + ID1 + ",'')<>'' and isnull(" + reason + ",0)=0";
在此过滤器后,我必须将IsVerified
的“inputView
”列更新为“1”
LINQ中有什么东西可以执行以下操作吗?
inputView.RowFilter.ForEach(x=>x.Field<IsVerified> =1);
答案 0 :(得分:1)
如果要在DataView上使用LINQ,则必须在DataView上创建自己的扩展方法。 DataView本身没有。ToList()
方法,这是。ForEach()
的定义。
为DataView创建扩展方法。
public static class DataViewExtensions
{
public static List<DataRowView> ToList(this DataView v)
{
List<DataRowView> foo = new List<DataRowView>();
for (int i = 0; i < v.Count; i++)
{
foo.Add(v[i]);
}
return foo;
}
}
现在可以将您的DataView称为:
inputView.ToList().ForEach(x=>x["IsVerified"]=1);
有些开发人员可能更喜欢完整的.NET foreach (var x in y)
语句,但这样做也是如此。
一个完整的控制台应用程序概念概念:http://pastebin.com/y9z5n6VH