我的 LINQ 查询只返回第一个结果(Class)。这是我使用的代码:
XDocument xmlDoc = XDocument.Load("Decks/Test.xml");
List<Cards> tempdeck = (from deck in xmlDoc.Elements("Deck")
select new Cards
{
Name = deck.Element("Type").Value
}).ToList<Cards>();
foreach (var item in tempdeck)
{
((MessageBroker)App.Current.Resources["MessageBroker"]).GameLog.Add(item.Name.ToString());
}
这是我的XML文件的样子:
<Deck>
<Type>
<Name>Class</Name>
</Type>
<Type>
<Name>stsfs</Name>
</Type>
<Type>
<Name>Class</Name>
</Type>
<Type>
<Name>Class</Name>
</Type>
</Deck>
我这样格式化它是因为当我让它工作时,我想向查询添加多个属性 - 不仅仅是名称。
提前感谢!
(int)deck.Element("Usage")
。XElement有一个显式的转换运算符到int(和其他常见类型)。它的“Value”属性返回一个System.String,不是int类型。关于Mark的答案,它获取所有牌组的类型子元素。如果您有多个牌组并且正在尝试从所有牌组中组装一个“cardses”序列,那么这就是正确的方法。它可以转换为一个“SelectMany”调用。 - Ani