2011-07-27 5 views
2

は私がしているオブジェクトのコレクションを持っています。 コレクションのオブジェクトとしては選択できません。新しいコレクションを作成する必要があります。LINQ 2 OBJECTS - 別のものを選択するにはどうすればいいですか? someDate</p> <p>が、私はこの二つのフィールドによって異なっているオブジェクトを選択する必要があり someString:

セイ:

2011年1月1日、 "ワン"

2011年1月1日、 "ワン"

2011年1月1日、 "ワン"

01/01/2011年「二つ」

(私は注意する必要がある - この4が互いに異なっている)

そして、私はGEに必要T:

2011年1月1日、 "ワン"

2011年1月1日、 "二"

どのように私はそれを達成することができますか?

ありがとうございました。

+0

あなたの質問は不明です。特に:「コレクションのオブジェクトとして選択することはできません - 新しいものを作成する必要があります。」 –

答えて

5

あなたの質問はかなり不明であるが、あなたはどちらかだけで投影した後Distinctを使用する必要があるように聞こえる:あなたがMoreLINQからDistinctByのようなものを使用する必要が

var distinctDatesAndNames = items.Select(x => new { x.Date, x.Name }) 
           .Distinct(); 

または

var distinctItems = items.DistinctBy(x => new { x.Date, x.Name }); 

本当にあなたの質問を明確にすることができたら助けてくださいしかし、

+0

投影後ですか?私の主な問題は、「新しい」キーワードは、入ってくるコレクション内のすべてのオブジェクトに対して匿名オブジェクトのインスタンスを作成すると考えていたことです。 Distinct()はどのようにして判別できますか? – Monochromie

+0

@Monochromie:はい、オブジェクトごとに新しいインスタンスを作成しますが、「Distinct」では「Equals」と「GetHashCode」を使用して同等のインスタンスを探します。 –

+0

DistinctByが私に必要なものです。 –

関連する問題