を得るために、私はこのようになりますデータテーブルを持っている(いない私のテーブルにデータを変更することはできません)LINQの個別のプロパティに
Code Version Description
AAA 0.0.0.0 Test of AAA
AAA 0.0.0.1 Test of AAA
BBB 0.0.0.0 Test of BBB
CCC 0.0.0.0 Test of CCC
CCC 0.0.0.1 Test of CCC
私は唯一のユニークな「コード」の値のリストを返したいです。
だから私の望ましい結果は次のようになります。
AAA Test of AAA
BBB Test of BBB
CCC Test of CCC
私は比較演算子クラスを作成しました:それはまだ戻っているが
var mapCodes = (from mtc in GetAllData() select mtc)
.Distinct(new MyComparer())
.ToList();
:
public class MyComparer : IEqualityComparer<MY_DATA_TABLE>
{
public bool Equals(MY_DATA_TABLE x, MY_DATA_TABLE y)
{
return x.CODE == y.CODE;
}
public int GetHashCode(MY_DATA_TABLE obj)
{
return obj.GetHashCode();
}
}
と私のコードでは、私が持っているの内容全体が戻ってくる。
プロパティ別のリストを取得するにはどうすればよいですか?あなたがMoreLinq's DistinctBy
var mapCodes = (from mtc in GetAllData()
select mtc).DistinctBy(x=>x.Code).ToList();
それとも使用することができます
に
Equals()
とwhioleオブジェクト内のコードだけをチェックします問題はありますが、GetHashCodeの実装が間違っています。オブジェクトが "等価"なので、HashCodesは 'obj.Code.GetHashCode()'を返すようにしなければなりません。 – BradleyDotNET*プロパティによって異なるリストを得る方法は?** ** ** GetHashCodeを正しく実装すること。 –
あなたはおそらくMoreLinqからDistinctByエクステンションを望むでしょう –