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(node => (string)node.Attribute("period") == "2" || (string)node.Attribute("period") == "3")

于 2013-01-09T09:30:47.230 に答える
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();
于 2013-01-09T09:33:32.100 に答える