我有一个非常讨厌的问题,我已经分组了一组数据,我无法得到组内的数据.我可以得到关键位而不是数据..
我有一堆表格中的数据
Data.Period = x
Data.Adjustment = y
Run Code Online (Sandbox Code Playgroud)
我执行GroupBy
var groupedData = Data.GroupBy(x => x.Period new {x.Period});
Run Code Online (Sandbox Code Playgroud)
这带回(根据linq)我的分层数据,它开始看起来我想要它.我喜欢迭代内容但不能......我该怎么做?我怎么...
了解如何在不使用投影的情况下进入Data.Adjustment.而且我不想投射,因为我必须执行另一个分组....帮助!:-)
pho*_*oog 88
该IGrouping<TKey, TElement>
接口继承IEnumerable<TElement>
:
foreach (var group in groupedData)
{
var groupKey = group.Key;
foreach (var groupedItem in group)
DoSomethingWith(groupKey, groupedItem);
}
Run Code Online (Sandbox Code Playgroud)
我注意到,最好将此用于查询,但是:
var groupedData = Data.GroupBy(x => x.Period);
Run Code Online (Sandbox Code Playgroud)
而不是这个:
var groupedData = Data.GroupBy(x => new {x.Period});
Run Code Online (Sandbox Code Playgroud)
例如,如果您想平均调整,则可以执行以下操作:
foreach (var group in groupedData)
Console.WriteLine("Period: {0}; average adjustment: {1}", group.Key, group.Average(i => i.Adjustment));
Run Code Online (Sandbox Code Playgroud)
jas*_*son 11
序列中的每个元素IGrouping<TKey, TElement>
都是IEnumerable<TElement>
您可以迭代以获取具有公共数据的数据TKey
:
var groups = Data.GroupBy(x => x.Period);
foreach(var group in groups) {
Console.WriteLine("Period: {0}", group.Key);
foreach(var item in group) {
Console.WriteLine("Adjustment: {0}", item.Adjustment);
}
}
Run Code Online (Sandbox Code Playgroud)
所以在上面,groups
是(你没有告诉我们)的类型IEnumerable<IGrouping<TPeriod, TAdjustment>>
在哪里,是类型.然后,是一个实现的对象(但它也有一个属性,以便您可以获取密钥.最后,是一个,并且对于每个,所有来自迭代的具有相同的密钥.TPeriod
Period
TAdjustment
Adjustment
group
IEnumerable<TAdjustment>
Key
item
TAdjustment
group
item
group
只需使用foreach
:
foreach(var group in groupedData)
{
Console.WriteLine("Period: {0}", group.Key);
foreach(var item in group)
Console.WriteLine(" Adjustment: {0}", item.Adjustment);
}
Run Code Online (Sandbox Code Playgroud)
小智 8
虽然可能对其他人显而易见,但也可以使用:
var groups = Data.GroupBy(x => x.Period);
foreach(var group in groups)
{
List<Data> dataListByPeriod = group.ToList();
//use this list
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
53485 次 |
最近记录: |