0

我有这个,我可以在周期为 2 时选择我想要的。但如果周期 2 不存在,我想选择周期为 3 的位置。如何?

 return document.Descendants("time")
                        .Where(node => (string)node.Attribute("period") == "2")
                        .Take(5)
                        .Select(status => WeatherFactory.Create(status, city, pos))
                        .ToList();
4

2 回答 2

3

你不能只改变Where to:

.Where(node => (string)node.Attribute("period") == "2" || (string)node.Attribute("period") == "3")

?

于 2013-01-09T09:30:47.230 回答
1

如果您首先选择 period == 2 的所有后代,请检查它是否包含任何结果,如果它没有选择 period == 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();
于 2013-01-09T09:33:32.100 回答