2010-07-18 84 views
0

我有過濾迭代數據視圖的更新

inputView.RowFilter = "isnull(" + ID1 + ",'')<>'' and isnull(" + reason + ",0)=0"; 

此過濾器後,我必須更新「IsVerified」的inputView列中的數據視圖「1」

有什麼在LINQ執行以下?

inputView.RowFilter.ForEach(x=>x.Field<IsVerified> =1); 

回答

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; 
    } 

} 

您的數據視圖,現在可以叫這個名字:

inputView.ToList().ForEach(x=>x["IsVerified"]=1); 

有些開發商可能更完整的.NET foreach (var x in y)聲明,但這也將這樣做。

一個完整的控制檯應用程序概念:http://pastebin.com/y9z5n6VH