我一直在使用 101 LINQ Samples使用 LINQ 弄湿我的脚。这是一个很好的第一个资源,但我看不到我当前需要的示例。
我只需要为每个组关联一个连续的组号。我有一个可行的解决方案:
var groups =
from c in list
group c by c.Name into details
select new { Name = details.Key, DetailRecords = details };
int groupNumber = 0;
foreach (var group in groups)
{
//
// process each group and it's records ...
//
groupNumber++;
}
但是,我确信也可以使用 LINQ 来生成 groupNumber。怎么办?
最佳答案
这取决于您的确切需求,但您可以使用:
var groupArray = groups.ToArray();
同样,您可以使用ToList
。这些数据结构是顺序的,每一组都有一个索引。
如果您确实需要您创建的对象的索引,另一种选择是使用Select
:
list.GroupBy(c => c.Name)
.Select((details, ind) =>
new
{
Name = details.Key,
DetailRecords = details,
Index = ind
});
关于c# - LINQ Group by Query 中的组号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3283251/