C#のLINQについて リクエスト失礼します。

C#のLINQについて リクエスト失礼します。 あれからいろいろ試行錯誤を凝らし解決したのですが LINQで var elements = XDocument.Load("dic.xml").Root.Elements(); var pairs = elements.Select(x => new { Key = x.Attribute("key").Value, Value = x.Attribute("value").Value }); var dictionary = pairs.ToDictionary(x => x.Key, x => x.Value); これがボタン1を押した時のコードなんですが(ボタン1を押したらテキストボックス1の内容を 変化させてテキストボックス2に表示する) これでボタン2を押したらテキストボックス2の内容をテキストボックス1に文字コードを変換して表示させる。(dic.xmlのキーとバリューを手書きで反対にしました。 key=0K value=おお とするなら value=0K key=おお と反転しました。) これで var elements = XDocument.Load("dic2.xml").Root.Elements(); var pairs = elements.Select(x => new { Key = x.Attribute("key").Value, Value = x.Attribute("value").Value }); var dictionary = pairs.ToDictionary(x => x.Key, x => x.Value); こっちのキーとバリューを反対にしたテキストファイルは新しく「dic2.xml」としたんですが それでデバッグなしで実行をする。 テキストボックス2に文字を入力してボタン2を押すと「同一のキーを含む項目が既に追加されています。」 とエラーが出ます。 これがどうしても解決しません。 教えてください。

ベストアンサー

0

dic2.xml の中に、次のような感じで 同じキーを持つタグが存在するのではないでしょうか。 <root> <dic key="key1" value="value1"/> ←keyが"key1" <dic key="key1" value="value2"/> ←keyが"key1"で重複している </root> 重複をなくせば、エラーは消えると思います。

この返信は削除されました