0

field(ID)行全体ではなく、データテーブルを特定して区別したいのですが、その方法は次のとおりです。

私のテーブル構造:

 ID -- name -- desc

コード:

DataTable dt = table.AsEnumerable()
    .Distinct(DataRowComparer.Default)//I want to distinct by id instead
    .CopyToDataTable();
4

2 に答える 2

0

これがあなたが望むものかどうかはわかりませんがIEqualityComparer、同じIDを持つすべての行を無視することができます

DataTable dt = table.AsEnumerable().Distinct(new MyComparer<YourClass>())
               .CopyToDataTable()

と :

    class MyComparer<T> : IEqualityComparer<T> where T : YourClass
    {
        public bool Equals(T x, T y)
        {
            return x.Id.Equals(y.Id);
        }

        public int GetHashCode(T obj)
        {
            return obj.Id.GetHashCode();
        }
    }
于 2013-04-15T14:09:13.257 に答える