我正在尝试在Linq中编写一个与日期匹配的where子句。 date的值包含在嵌套对象中。我的意思是包含日期的对象有两个元素开始和结束。我收到两条错误消息:
我的代码是:
var locationName = from relocate in relocations where **relocate.Relocations.
Where(c=>c.TimeIntervals.Select(d=>d.Start==sh.StartTime.Date))**
select relocate.Relocations.Select(a=>a.Path.Items.
Select(b=>b.DisplayString.Skip(4).SingleOrDefault()));
这是双**之间的位。
请帮助!!!
答案 0 :(得分:0)
您的relocate.Relocations.Where
会返回IEnumerable。您需要将其与某些东西进行比较(相交),以便结果计算为布尔值。
也许是这样:
relocate.Relocations.Where(...).Any()
var locationName = from relocate in relocations where **relocate.Relocations.
Where(c=>c.TimeIntervals.Select(d=>d.Start==sh.StartTime.Date).Any()).Any()**
select relocate.Relocations.Select(a=>a.Path.Items.
Select(b=>b.DisplayString.Skip(4).SingleOrDefault()));
答案 1 :(得分:0)
我认为您只需在声明的末尾添加First()
或FirstOrDefault()
。
答案 2 :(得分:0)
日期和位置之间存在脱节 - 我设法通过使用字典类然后匹配日期来解决这个问题!