2015-10-13 46 views
2

我有从linq(group by query)生成的集合。这个生成列表,并收集我想要遍历每个键循环,我有以下的代码,通过分组生成对象的名单,现在我想遍历如何通过C#中的var对象集合循环?

var objList=from p in objConfigurationList 
group p by p.UserID into g 
select new { UserID=g.Key, ReportName=g.ToList() }; 

foreach (object oParam in objList) 
{ 

} 

所以我怎么能访问这里面的关键和REPORTNAME列表的foreach。如何为此编写foreach?

回答

8

使用var而不是object。该select new创建一个匿名类型:

foreach (var oParam in objList) 
{ 
    Console.WriteLine(oParam.UserID); 
} 
4

你也可以使用一个小的扩展方法(credits):

public static void ForEach<T>(this IEnumerable<T> @this, Action<T> action) 
{ 
    foreach (var item in @this) 
     action(item); 
} 

然后,你可以做

objList.Foreach(oParam => 
{ 
    ... // your code here, e.g. Console.WriteLine(oParam.UserID) 
} 

它在方法 - 真的好语法linq。