像循环一样查询
本文关键字:一样 查询 循环 | 更新日期: 2023-09-27 18:33:48
我在方法中有一个 LINQ,它正在传递一个HalfHour
对象的数组,每个对象都包含一个DateAndTime
和一个HalfHourNumber
。
我需要分别查询其中的每一个,然后平均结果。 目前我的查询仅适用于第一个元素(我正在选择元素[1]
):
internal static decimal? Average(this IQueryable<LOSSES> query, HalfHour[] array)
{
var list = query.ToList();
var numbers = (from q in list
where q.DAY == array[1].DateAndTime.Date
select q).Select(x => Calculations.SingleElement(x,
array[1].HalfHourNumber));
return numbers.Average();
}
如何防止需要在循环中执行此操作(多次调用查询)同时保持对象属性正确关联?
要获取与您的LOSSES
列表一起使用的平均值列表:
var averages = list.Select(
q => array.Where(hh => q.DAY == hh.DateAndTime.Date)
.Select(hh => Calculations.SingleElement(q, hh.HalfHourNumber)
.Average()).ToList();
或者,要将每个LOSSES
与字典中的平均值相关联(如果LOSSES
支持用作键):
var averages = list.ToDictionary(
q => q,
q => array.Where(hh => q.DAY == hh.DateAndTime.Date)
.Select(hh => Calculations.SingleElement(q, hh.HalfHourNumber)
.Average()
);