gpt4 book ai didi

c# - 在自定义类的 IEnumerable 中对具有特定 ID 的项目求和

转载 作者:行者123 更新时间:2023-11-30 13:59:41 25 4
gpt4 key购买 nike

CustomClass{
int ID;
int numberToSum;
float numToAverage;
}


IEnumerable<CustomClass> results = MethodToPopulateIEnumerable();
List<int> listOfIDs = MethodToGetListOfIDs();

我想用这些做的是带上我的 IEnumberable<CustomClass>并选择 ID 在 List<int> listOfIDs 中的所有那些, 那么我想总结 numberToSum这个值并将其保存在一个变量中并获得 numToAverage 的平均值属性并将其保存在变量中。

最优雅的方法是什么?

最佳答案

我认为您正在寻找这样的东西:

IEnumerable<CustomClass> results = MethodToPopulateIEnumerable();
List<int> listOfIDs = MethodToGetListOfIDs();

查询语法

 var query = from c in results
where listOfIds.Any(x => x == c.ID)
select c;

方法语法

var query = results.Where(c => listOfIds.Any(x => x == c.ID));

计算

int numberToSum = query.Sum(x => x.numberToSum);
float numToAverage = query.Average(x => x.numToAverage);

另一种替代方法可以减轻其他成员对性能的一些担忧,但仍然允许查询是 linq-to-whatever 友好的(linq-to-entitieslinq- to-sql):

var calculations = (from c in results
where listOfIds.Any(x => x == c.ID)
group c by 1 into g
select new {
numberToSum = g.Sum(x => x.numberToSum ),
numToAverage = g.Average(x => x.numToAverage),
}).FirstOrDefault();

关于c# - 在自定义类的 IEnumerable 中对具有特定 ID 的项目求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12675819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com