我有一个过滤器的 DataView
inputView.RowFilter = "isnull(" + ID1 + ",'')<>'' and isnull(" + reason + ",0)=0";
在这个过滤器之后,我必须将“ IsVerified
”列 更新inputView
为“1”
LINQ 中是否有执行以下操作的内容?
inputView.RowFilter.ForEach(x=>x.Field<IsVerified> =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);
一些开发人员可能更喜欢完整的 .NETforeach (var x in y)
语句,但这也是一样的。
完整的控制台应用程序概念验证:http: //pastebin.com/y9z5n6VH