大家好,提前谢谢,我很难理解如何在需要执行的条件语句中使用where子句。我有两个信息网格,一个网格依赖于另一个网格来决定显示什么。在第一个网格中,日期字段可以是日期,也可以说永远不会。
第一个网格的数据如下所示:
ID Date Title
--- ----- ------
12 Never Home
13 Never School
14 Never Work根据日期字段的值,第二个网格将只显示三行中的一行,在本例中应该是:
ID Date Title
--- ----- ------
12 Never Home 此信息被拖到我想要使用LINQ迭代的列表中。我想要实现的是:
If(All Date values == 'Never')
Then pull the first one (12)
else
if(Date has value)
then pull the first that has a date
myList.Where(??what goes here??).Select(t => t).FirstOrDefault(); 发布于 2014-12-12 16:15:51
你可能在找这样的东西:
var record = myList.All(m => m.Date.Equals("Never"))
? myList.FirstOrDefault()
: myList.FirstOrDefault(m => !m.Date.Equals("Never"));关于.All()的更多信息,请看一下这个MSDN帖子。
发布于 2014-12-12 16:18:39
var record = myList.FirstOrDefault(m => !m.Date.Equals("Never"))
?? myList.FirstOrDefault();也就是说,第一个不等于从不或空的,如果是空的,只等于第一个(或空)。
发布于 2014-12-12 16:24:01
因为您有两条规则,所以在某个地方需要一个if条件。
我能想到的最简单的形式是这样的:
return myList.All(x => x.Date == "Never") ? myList.FirstOrDefault() : myList.FirstOrDefault(x => x.Date != "Never");https://stackoverflow.com/questions/27447645
复制相似问题