我可以使用下面的代码有条件地添加一个子xelement但是当我尝试添加多个xelements时,我会收到语法警告。我该如何添加多个?
行
new XElement("AllNumbers",
bonusNumbers.Any() ?
from n in bonusNumbers select
new XElement("BonusNumbers", bonusNumbers.ToArray())
:null),
不行
new XElement("AllNumbers",
numbers.Any() ?
from n in numbers select
new XElement("Numbers", numbers.ToArray())
:null;
bonusNumbers.Any() ?
from n in bonusNumbers select
new XElement("BonusNumbers", bonusNumbers.ToArray())
:null),
答案 0 :(得分:2)
new XElement("AllNumbers",
numbers.Any() ?
from n in numbers
select new XElement("Numbers", numbers.ToArray())
: null, // should be , instead of ;
bonusNumbers.Any() ?
from n in bonusNumbers
select new XElement("BonusNumbers", bonusNumbers.ToArray())
: null);
目前尚不清楚为什么要为集合中的每个数字添加所有数字。可能你不应该在这里使用查询:
new XElement("AllNumbers",
numbers.Any() ? new XElement("Numbers", numbers) : null,
bonusNumbers.Any() ? new XElement("BonusNumbers", bonusNumbers) : null);
或者,如果您想将每个数字放在自己的元素中:
new XElement("AllNumbers",
numbers.Any() ?
new XElement("Numbers",
numbers.Select(n => new XElement("Number", n))) : null,
bonusNumbers.Any() ?
new XElement("BonusNumbers",
bonusNumbers.Select(n => new XElement("Number", n))) : null);