Vb.net Linq如果日期为Max()则选择新属性

Vb.net Linq如果日期为Max()则选择新属性,vb.net,linq,max,anonymous-types,Vb.net,Linq,Max,Anonymous Types,我试图创建一个属性“Level”,如果records CompletedDate是整个结果集中最大的/max,则该属性将设置为0,否则将其设置为1。我需要知道输出的“级别”,以便正确地呈现嵌套的div。任何想法都将不胜感激 From g In pciData.AsEnumerable() _ Order By (g.SmartForm.CompletedDate) Descending _ Select _ Name = IIf(g.SmartForm.FormName Is Nothi

我试图创建一个属性“Level”,如果records CompletedDate是整个结果集中最大的/max,则该属性将设置为0,否则将其设置为1。我需要知道输出的“级别”,以便正确地呈现嵌套的div。任何想法都将不胜感激

From g In pciData.AsEnumerable() _
Order By (g.SmartForm.CompletedDate) Descending _
Select _
    Name = IIf(g.SmartForm.FormName Is Nothing, "", g.SmartForm.FormName.ToString()), _
    Level = IIf( _ 
    iif(Date.Parse(g.SmartForm.CompletedDate) = "GET MAX DATE OF RESULT SET HERE", 0, 1) 
回答

Level = IIf(Date.Parse(g.SmartForm.CompletedDate) = _ 
Date.Parse(pciData.Max(Function(m) m.SmartForm.CompletedDate)), 0, 1)

试着这样做:

(未经测试的手写输入代码..可能包含打字错误)


我会在这些电话之前计算出那个日期,然后在IIf中使用它。类似这样的东西
Dim maxDate As DateTime=pciData.AsEnumerable().Max(函数s.CompletedDate)
Thank@Saragis如果所有其他方法都失败,我会尝试,但我真的希望在同一个查询中使用它。即使它不在select子句中。我更新了我的问题。当然也可以在IIf中使用
pciData.AsEnumerable().Max(函数s.CompletedDate)
。我只是不知道与我的建议(可能会有影响)相比,这将如何影响性能。@Saragis我实际上是想问,如果有差异,我会测试并记录我的发现。我在准确的时间放了我的:)我想这也同样有效。
From g In pciData.AsEnumerable() _
Let MaxDate = g.max(function(f) f.CompletedDate) _
Order By (g.SmartForm.CompletedDate) Descending _
Select _
Name = IIf(g.SmartForm.FormName Is Nothing, "", g.SmartForm.FormName.ToString()), _
Level = IIf( _ 
iif(Date.Parse(g.SmartForm.CompletedDate) > MaxDate, 0, 1)