我有一个EF模型,我从中选择要在ASP.NET中显示的数据子集。当我呈现此输出时,我遍历返回的对象。我想知道何时呈现具有最高值的对象(以不同方式格式化)。
ObjectTable
Category Item Value
X A 1.0
X B 14.0
X C 9.0
Y D 18.0
我可以返回我要查看的项目:
var obj = from o in ObjectTable where Category=="X" select o;
我想知道B的价值最高。
我对这种情况非常灵活我只是无法提出合理的解决方案。我是否应该修改LINQ语句以添加创建obj.IsMax变量的LET语句,如果o.Value == o.Max使其为TRUE,所有其他对象为FALSE,如果是,如何?这条路线好像很贵?
或者我可以用部分类扩展EF模型并以某种方式计算模型值是否等于返回对象的最大值?
还是完全不同的东西?
答案 0 :(得分:0)
var obj = (ObjectTable.Where(o => o.Category == "Y"));
var anonymousObjList = obj.Select(o => new {o, IsMax = (o.Value == obj.Max(x => x.Value))});
通过anonymousObjList循环
foreach(var obj in anonymousObjList)
{
var actualObject = obj.o;
var isMax = obj.IsMax;
}