我有这个,我可以在期间为2时选择我想要的但是如果期间2不存在我想选择期间为3的地方。怎么样?
return document.Descendants("time")
.Where(node => (string)node.Attribute("period") == "2")
.Take(5)
.Select(status => WeatherFactory.Create(status, city, pos))
.ToList();
答案 0 :(得分:3)
你不能只改变Where to:
.Where(node => (string)node.Attribute("period") == "2" || (string)node.Attribute("period") == "3")
答案 1 :(得分:1)
如果您首先选择所有后代= = 2的后代,请检查它是否包含任何结果,如果它没有选择所有后代,其中句点== 3:
var timeDescendants = document.Descendants("time")
.Where(node => (string)node.Attribute("period") == "2");
if(!timeDescendants.Any()) {
timeDescendants = document.Descendants("time")
.Where(node => (string)node.Attribute("period") == "3");
}
return timeDescendants.Take(5)
.Select(status => WeatherFactory.Create(status, city, pos))
.ToList();