在我的应用程序中,我使用了以下LINQ:
var GroupedEmployyes = from e in EmpCollection
group e by e.identifier into g
select new { Employee= g, identifier = g.Key };
我将这个小组传递给其他一些功能如下:
Save(GroupedEmployyes)
Save(IEnumerable<IGrouping<string,Employee>> groupedEmployee)
{
}
如何使用Save方法从“groupedEmployee”参数访问“Employee”对象和“identifier”对象?
答案 0 :(得分:1)
当您说new { Employee= g, identifier = g.Key };
为了能够在另一个函数(例如Save
)中获取这些值,您需要创建命名类型的对象。如果您无法为此次使用创建特殊类,请使用System.Tuple
另一方面,你创建雇员与密钥的配对是很奇怪的,因为IGrouping
已经为你做了,所以例如:
void Save(IEnumerable<IGrouping<string, Employee>> groupedEmployee)
{
foreach (var group in groupedEmployee)
{
Console.WriteLine(group.Key);
foreach (var emp in group)
Console.WriteLine(emp.ToString());
}
}
你可以用以下方式调用:
Save(EmpCollection.GroupBy(e => e.identifier));