0

フィルタリングするDataViewがあります

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

このフィルターの後、「IsVerified」列 inputViewを「1」に更新する必要があります

LINQ で次のことを実行するものはありますか?

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

1 に答える 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;
    }

}

DataView は次のように呼び出すことができます。

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

一部の開発者は完全な .NETforeach (var x in y)ステートメントを好むかもしれませんが、これは同じことを行います。

完全なコンソール アプリケーションの概念実証: http://pastebin.com/y9z5n6VH

于 2010-07-18T18:19:43.673 に答える