簡體   English   中英

使用Linq To XML將XML轉換為字典

[英]XML to Dictionary using Linq To XML

好吧,我對這個簡單的事情迷失了。 我想將這個xml轉換成字典,基本上是這樣的:

var xml = "<root><Hello>World</Hello><Foo>Bar</Foo></root>";
var doc = XDocument.Parse(xml);
var dic = new Dictionary<string, string>();
foreach (var elem in doc.Root.Elements())
{
    dic[elem.Name.LocalName] = elem.Value;
}

但是我想使用ToDictionary,所以我這樣寫:

var dic = doc.Root.Elements().ToDictionary<string, string>(e => e.Name.LocalName, e => e.Value);

但是它不能編譯! 我得到這些錯誤

錯誤1實例參數:無法從“ System.Collections.Generic.IEnumerable”轉換為“ System.Collections.Generic.IEnumerable” Program.cs 65 22
錯誤2'System.Collections.Generic.IEnumerable'不包含'ToDictionary'的定義,最佳擴展方法重載'System.Linq.Enumerable.ToDictionary(System.Collections.Generic.IEnumerable,System.Func,System.Collections .Generic.IEqualityComparer)'有一些無效的參數Program.cs 65 22錯誤3參數2:無法從'lambda表達式'轉換為'System.Func'Program.cs 65 71
錯誤4參數3:無法從“ lambda表達式”轉換為“ System.Collections.Generic.IEqualityComparer” Program.cs 65 94

這個

var dic = doc.Root.Elements().ToDictionary<string, string>(e => e.Name.LocalName, e => e.Value);

應該是這樣的:

var dic = doc.Root.Elements().ToDictionary(e => e.Name.LocalName, e => e.Value);

您不必聲明鍵的類型和值的類型。 請對此進一步了解,請在這里查看

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM