如何在一个返回一个实体求某些列的最大值,最小值,平均值,求和呢?
过去一直都是用的循环对比,没有进行归纳,或者就是最笨的办法
var demos = new List<Demo>();
foreach (var item in demos)
{
var values = new List<decimal>();
values.Add(item.v00);
values.Add(item.v15);
values.Add(item.v30);
values.Add(item.v45);
var demo = new Demo();
demo.Id = item.Id;
demo.DataMAX = values.Max();
demo.DataMIN = values.Min();
demo.DataAVG = values.Average();
demo.DataTOTAL = values.Sum();
demos.Add(demo);
}
那怎么写会更简单便捷呢?而不是每次使用这个实体,我们都要进行循环比较呢?
好吧,直接贴图吧~~~文章来源:https://www.toymoban.com/news/detail-656453.html
看不懂的记得补课。文章来源地址https://www.toymoban.com/news/detail-656453.html
private class Demo
{
public string Id {get;set;}
public decimal V00 { get; set; }
public decimal V15 { get; set; }
public decimal V30 { get; set; }
public decimal V45 { get; set; }
private List<decimal> decimals { get; set; }
public Demo SetValue()
{
decimals = new List<decimal>() { V00, V15, V30, V45 };
return this;
}
public decimal Max()
{
return decimals.Max();
}
public decimal Min()
{
return decimals.Min();
}
public decimal Avg()
{
return decimals.Average();
}
public decimal Total()
{
return decimals.Sum();
}
}
var allDemos = new List<Demo>();
var demos = GetDemos.GroupBy(r => new { r.Id})
.Select(r => new Demo
{
YC_ID = r.Key.Id,
V00 = r.Sum(y => y.V00),
V15 = r.Sum(y => y.V15),
V30 = r.Sum(y => y.V30),
V45 = r.Sum(y => y.V45),
}.SetValue()).ToList();
foreach (var item in demos)
{
var demo = new Demo();
demo.Id = item.Id;
demo.MAX = item.Max();
demo.MIN = item.Min();
demo.AVG = item.Avg();
demo.TOTAL = item.Total();
allDemos.Add(demo);
}
到了这里,关于c#后端获实体类多列最大值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!