C#のLINQについて 今、文字コードを変換するプログラムを作成しているんですが (例えば、「0N」を「個」という文字に変換したり)

C#のLINQについて 今、文字コードを変換するプログラムを作成しているんですが (例えば、「0N」を「個」という文字に変換したり) というプログラムをフォームアプリケーションで作っているんですが 効率よくプログラムを書く方法がわかりません。 別で手書きの辞書ファイル(xml)を作ってLINQという機能を使って 変換するようにしようと思うのですがこれって可能ですか?

ベストアンサー

0

シンプルに書けますよ。 <?xml version="1.0" encoding="utf-8" ?> <root> <key1>value1</key1> <key2>value2</key2> <key3>value3</key3> <key4>value4</key4> <key5>value5</key5> </root> このXMLを辞書に変換するには、 using System; using System.Collections.Generic; using System.Linq; using System.Xml.Linq; namespace ConsoleExample { class Program { static void Main(string[] args) { var elements = XDocument.Load("dictionary1.xml").Root.Elements(); var pairs = elements.Select(x => new { Key = x.Name.ToString(), Value = x.Value }); var dictionary = pairs.ToDictionary(x => x.Key, x => x.Value); foreach (var pair in dictionary) { Console.WriteLine(pair.Key + " : " + pair.Value); } } } } こんな感じです。 または、こんなXMLでもいいです。 <?xml version="1.0" encoding="utf-8" ?> <root> <dic key="key1" value="value1"/> <dic key="key2" value="value2"/> <dic key="key3" value="value3"/> <dic key="key4" value="value4"/> <dic key="key5" value="value5"/> </root> これを辞書に変換するには、 using System; using System.Collections.Generic; using System.Linq; using System.Xml.Linq; namespace ConsoleExample { class Program { static void Main(string[] args) { var elements = XDocument.Load("dictionary2.xml").Root.Elements(); var pairs = elements.Select(x => new { Key = x.Attribute("key"), Value = x.Attribute("value") }); var dictionary = pairs.ToDictionary(x => x.Key, x => x.Value); foreach (var pair in dictionary) { Console.WriteLine(pair.Key + " : " + pair.Value); } } } } これでOKです。