[解決済み] LINQ Select Distinct with Anonymous Types
2022-04-25 11:51:22
質問
私はオブジェクトのコレクションを持っています。 正確な型は重要ではありません。 そこから、特定のプロパティのペアのユニークなペアをすべて抽出したいのですが、以下のようになります。
myObjectCollection.Select(item=>new
{
Alpha = item.propOne,
Bravo = item.propTwo
}
).Distinct();
この場合、Distinctはデフォルトのオブジェクトequalsを使用するのでしょうか(各オブジェクトは新しいので、私には無意味でしょう)、それとも別のequals(この場合、アルファとブラボーの値が同じ => 等しいインスタンス)を実行するように指示できるのでしょうか。 もし、これでできないのであれば、その結果を達成する方法はないのでしょうか?
解決方法は?
K. Scott Allenの素晴らしい投稿をご覧ください。
短い答え(と引用)。
C#のコンパイラーは 等号とGetHashCodeを匿名 という型があります。この2つの型の実装は オーバーライドされたメソッドは、すべてのパブリック を計算するために、その型の オブジェクトのハッシュコードと を等しくする。もし、同じ 匿名型がすべて同じ は、そのプロパティの値として オブジェクトは等しい。
ですから、無名型を返すクエリでDistinct()メソッドを使っても全く問題ないわけです。
関連
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する
-
[解決済み] LINQで複数の "order by "を使用する
-
[解決済み] 特定のプロパティに対するLINQのDistinct()
-
[解決済み] SelectとSelectManyの違い
-
[解決済み] LINQのGroup by
-
[解決済み] DataTableに対するLINQクエリ
-
[解決済み] LINQで.Firstと.FirstOrDefaultを使用するタイミングは?
-
[解決済み] Distinct() with lambda?
-
[解決済み] LINQ集計アルゴリズム説明
-
[解決済み] 匿名クラスはインターフェースを実装できますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】文字列が有効な DateTime " format dd/MM/yyyy " として認識されなかった。
-
[解決済み】統合マネージドパイプラインモードで適用されないASP.NETの設定が検出された
-
[解決済み】"The ConnectionString property has not been initialized "を修正する方法
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】バックスラッシュを含むパス文字列のエスケープシーケンスが認識されない件
-
[解決済み】ORA-01008: すべての変数がバインドされていません。これらはバインドされています。
-
[解決済み】C# - パスに不正な文字がある場合
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】WSACancelBlockingCallの例外について
-
[解決済み] Linqを使ってリストを辞書に変換し、重複を気にしないようにする。