0

クラスがあります

class Test
{
    public string FirstProp { get; set; }
    public string SecondProp { get; set; }
    public string ThirdProp { get; set; }
}

およびオブジェクトのリスト

var list = new List<Test>
{
    new Test { FirstProp = "xxx", SecondProp = "x2", ThirdProp = "x3" },
    new Test { FirstProp = "xxx", SecondProp = "x21", ThirdProp = "x31" },
    new Test { FirstProp = "yyy", SecondProp = "y2", ThirdProp = "y3" },
    new Test { FirstProp = "yyy", SecondProp = "y21", ThirdProp = "y31" },
    new Test { FirstProp = "xxx", SecondProp = "x22", ThirdProp = "x32" },
};

最初のFirstPropレコードを選択する必要があります。

FirstProp = "xxx", SecondProp = "x2", ThirdProp = "x3"
FirstProp = "yyy", SecondProp = "y2", ThirdProp = "y3"

を使用して最良の方法でそれを行う方法はlinq

4

3 に答える 3

8

GroupByプロパティFirstPropで使用して、取得することができますFirst

 list.GroupBy(x => x.FirstProp).Select(g => g.First())
于 2013-03-20T10:44:01.920 に答える
3
list.GroupBy (l => l.FirstProp).Select (l => l.First ())

ここでは機能しますが、各グループからどのアイテムを取得する必要があるかを判断する必要があります(最初は必ずしも良い選択ではありません)

于 2013-03-20T10:45:02.993 に答える
0

Distinctプロパティを使用する必要があります

var result = list.DistinctBy(t => t.FirstProp);
于 2013-03-20T10:46:25.973 に答える