在我的应用程序中,我按如下方式使用了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“对象?
发布于 2014-01-02 17:42:39
当您指定new { Employee= g, identifier = g.Key };时,链接表达式将创建匿名类型的对象
为了能够在另一个函数(如Save )中获取这些值,您需要创建命名类型的对象。如果您不愿意为此创建一个特殊的类,那么可以使用System.Tuple
另一方面,创建employee和key的配对很奇怪,因为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));https://stackoverflow.com/questions/20879955
复制相似问题