foreach (var agrupado in lUx.GroupBy(x => x.IdOperario))
{
//en agrupado.Key tienes el IdOperario
foreach(var actividad in agrupado)
{
//en actividad vas recorriendo cada actividad del operario
//podrias acceder a actividad.InicioTrabajo, actividad.Duracion, actividad.IdOperario...
//
}
}
或者,如果您需要的是要处理的每个运算符的列表,只需:
foreach (var agrupado in lUx.GroupBy(x => x.IdOperario))
{
List<Actividad> lista = agrupado.ToList();
int? secs = lista.Sum(x=>x.Duracion);
GestionExcel.generaInformeIndividual(lista, secs);
}
尽管@Einer 的答案是完全正确的,但您可能正在寻找的
GroupBy
不仅仅是Select
. 如果您想要查看每个 Operator 的所有活动,最合乎逻辑的做法是按 IdOperario 对它们进行分组,以便稍后在循环中遍历所述运算符的每个活动。我会做这样的事情:或者,如果您需要的是要处理的每个运算符的列表,只需:
IdOperario
是类型的int
,当你这样做时,你Select(x=>x.IdOperario)
正在创建一个列表int
,而不是它,Actividad
所以它告诉你你不能将类型转换int
为List<Actividad>
.所以改变:
经过:
更新:
正如您提到的,您需要按活动和具有您需要的数据的同一类进行分组,您可以使用
GroupBy(x=>X.IdOperario)
它将为您提供按以下方式分组的列表IdOperario
: