Cara bekerja dengan kamus menggunakan LINQ ke XML
Seringkali lebih mudah untuk mengonversi struktur data dari berbagai jenis ke XML, dan kemudian dari XML ke struktur data lainnya. Artikel ini menunjukkan konversi Dictionary<TKey,TValue> ke XML dan sebaliknya.
Contoh: Buat Kamus dan ubah isinya menjadi XML
Contoh pertama ini membuat Dictionary<TKey,TValue>, lalu mengonversinya menjadi XML.
Versi C# dari contoh ini menggunakan bentuk konstruksi fungsional di mana kueri memproyeksikan objek XElement baru, dan koleksi yang dihasilkan diteruskan sebagai argumen ke konstruktor objek Root XElement.
Versi Visual Basic menggunakan literal XML dan kueri dalam ekspresi yang disematkan. Kueri memproyeksikan objek baru XElement yang kemudian menjadi konten baru untuk objek tersebut Root
XElement .
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("Child1", "Value1");
dict.Add("Child2", "Value2");
dict.Add("Child3", "Value3");
dict.Add("Child4", "Value4");
XElement root = new XElement("Root",
from keyValue in dict
select new XElement(keyValue.Key, keyValue.Value)
);
Console.WriteLine(root);
Dim dict As Dictionary(Of String, String) = New Dictionary(Of String, String)()
dict.Add("Child1", "Value1")
dict.Add("Child2", "Value2")
dict.Add("Child3", "Value3")
dict.Add("Child4", "Value4")
Dim root As XElement = _
<Root>
<%= From keyValue In dict _
Select New XElement(keyValue.Key, keyValue.Value) %>
</Root>
Console.WriteLine(root)
Contoh ini menghasilkan output berikut:
<Root>
<Child1>Value1</Child1>
<Child2>Value2</Child2>
<Child3>Value3</Child3>
<Child4>Value4</Child4>
</Root>
Contoh: Buat kamus dan muat dari data XML
Contoh berikutnya membuat kamus memuatnya dari data XML.
XElement root = new XElement("Root",
new XElement("Child1", "Value1"),
new XElement("Child2", "Value2"),
new XElement("Child3", "Value3"),
new XElement("Child4", "Value4")
);
Dictionary<string, string> dict = new Dictionary<string, string>();
foreach (XElement el in root.Elements())
dict.Add(el.Name.LocalName, el.Value);
foreach (string str in dict.Keys)
Console.WriteLine("{0}:{1}", str, dict[str]);
Dim root As XElement = _
<Root>
<Child1>Value1</Child1>
<Child2>Value2</Child2>
<Child3>Value3</Child3>
<Child4>Value4</Child4>
</Root>
Dim dict As Dictionary(Of String, String) = New Dictionary(Of String, String)
For Each el As XElement In root.Elements
dict.Add(el.Name.LocalName, el.Value)
Next
For Each str As String In dict.Keys
Console.WriteLine("{0}:{1}", str, dict(str))
Next
Contoh ini menghasilkan output berikut:
Child1:Value1
Child2:Value2
Child3:Value3
Child4:Value4
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk