如何使用LINQ to XML在C#中为这段代码获取一个usabled List对象?
新手到C#这里 我有以下代码:如何使用LINQ to XML在C#中为这段代码获取一个usabled List对象?,c#,.net,visual-studio,windows-phone-7,C#,.net,Visual Studio,Windows Phone 7,新手到C#这里 我有以下代码: var xdoc = XDocument.Parse(xml); var result = xdoc.Root.Elements("item") .Select(itemElem => itemElem.Elements().ToDictionary(e => e.Name.LocalName, e => e.Value)) .ToList(); 但是当我试
var xdoc = XDocument.Parse(xml);
var result = xdoc.Root.Elements("item")
.Select(itemElem => itemElem.Elements().ToDictionary(e => e.Name.LocalName, e => e.Value))
.ToList();
但是当我试图像使用任何列表
对象那样使用结果
时,例如结果.Item
,它就不起作用了
我做错了什么?为什么结果不能作为我可以在代码中操纵的普通列表对象返回?我需要从中创建另一个列表对象吗
我只是想从列表中找出第一个字典项并使用它 这取决于你的期望。您的代码当前生成一个
列表
。所以列表中的每个条目都是一本字典
您可以像通常访问列表元素一样访问每个字典,即
string firstResult = result[0]["key"];
第一部分[0]
是列表的索引器,第二部分[“key”]
是字典的索引器-这将返回列表中第一个字典的key“key”
的值
这假设列表中至少有一个条目,您必须对此进行检查。这是一个列表。列表中的每个元素都是一个字典
知道你想用它做什么会有帮助
但一些例子是:
//Get the First Dictionary Item, then Iterate through all the items in the first dictionary.
var firstItem = results.First();
foreach(var kvPair in firstItem)
{
var key = kvPair.Key;
var val = kvPair.Value;
}
//Loop through each Dictionary getting values from each.
foreach (var result in results)
{
var wordValue = result["word"];
var defValue = result["def"];
}
//Create a list of all the values for the Elements with the key "word".
var valuesForAllWords =
results
.Select(r => r["word"])
好的,但如何访问该列表中的第一个词典?结果[0]是结果列表中的第一个词典。请注意,如果列表为空,结果[0]将引发异常。您可以进行测试,查看列表是否为空测试结果。Any()或result.Count()>0。您可以使用var x=result.FirstOrDefault()并测试x是否为null。我只是尝试从列表中获取第一个字典项并使用它。