[解決済み] Linqを使ってリストを辞書に変換し、重複を気にしないようにする。
2022-04-14 08:18:58
質問
Personオブジェクトのリストがあります。キーが姓名(連結)、値がPersonオブジェクトであるDictionaryに変換したいのですが、どうすればよいですか?
問題は、重複している人がいることで、このコードを使用すると爆発してしまうことです。
private Dictionary<string, Person> _people = new Dictionary<string, Person>();
_people = personList.ToDictionary(
e => e.FirstandLastName,
StringComparer.OrdinalIgnoreCase);
変な話ですが、今のところ名前の重複はあまり気にしていません。複数の名前がある場合は、1つだけ取り出したいのです。どうにかして、上記のコードを書いて、名前の1つを取得するだけで、重複していても吹き飛ばされないようにすることはできないのでしょうか?
どのように解決するのですか?
これは、明白な、linqではない解決策です。
foreach(var person in personList)
{
if(!myDictionary.ContainsKey(person.FirstAndLastName))
myDictionary.Add(person.FirstAndLastName, person);
}
常に最後に追加されたものが表示されることを気にしないのであれば、このように二重ルックアップを回避することができます。
foreach(var person in personList)
{
myDictionary[person.FirstAndLastName] = person;
}
関連
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み] linqを使用してリスト内の重複を削除する
-
[解決済み] LINQを使用してList<T>から要素を削除する
-
[解決済み] C# LINQ リスト内の重複を検索する
-
[解決済み] UTF-8 byte[]を文字列に変換する方法
-
[解決済み] コードが含まれるアセンブリのパスを取得するにはどうすればよいですか?
-
[解決済み] LINQ を使用して、ある List<> にある項目を別の List<> にない項目として取得する。
-
[解決済み] LINQを使用してList<string>内のすべての文字列を結合する
-
[解決済み] Linqクエリの結果を辞書に変換する
-
[解決済み] C# List<string> から Dictionary<string, string> への変換
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】パディングが無効で、削除できない?
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み】クロススレッド操作が有効でない。作成されたスレッド以外のスレッドからアクセスされたコントロール
-
[解決済み】C# - パスに不正な文字がある場合
-
[解決済み】Entity FrameworkからのSqlException - セッション内で他のスレッドが動作しているため、新しいトランザクションは許可されません。
-
[解決済み】「...は'型'であり、与えられたコンテキストでは有効ではありません」を解決するにはどうすればよいですか?(C#)
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する
-
[解決済み] 特定のプロパティに対するLINQのDistinct()
-
[解決済み] LINQ Select Distinct with Anonymous Types