fea*_*net 125 c# linq igrouping data-structures
我有一个类似的数据结构
public DespatchGroup(DateTime despatchDate, List<Products> products);
Run Code Online (Sandbox Code Playgroud)
而我正在努力......
var list = new List<DespatchGroup>();
foreach (var group in dc.GetDespatchedProducts().GroupBy(i => i.DespatchDate))
{
// group.Values is not correct... how do I write this?
list.Add(new DespatchGroup(group.Key, group.Values);
}
Run Code Online (Sandbox Code Playgroud)
我显然不理解,IGrouping因为我无法看到如何实际访问组内的数据记录!
Mar*_*ell 156
该集团实现IEnumerable<T>-在一般情况下,只需拨打foreach过group.在这种情况下,因为你需要一个List<T>:
list.Add(new DespatchGroup(group.Key, group.ToList());
Run Code Online (Sandbox Code Playgroud)
Luk*_*keH 31
没有Values属性或相似之处,因为它IGrouping<T>本身就是IEnumerable<T>值的序列.在这种情况下,您需要做的就是将该序列转换为列表:
list.Add(new DespatchGroup(group.Key, group.ToList());
Run Code Online (Sandbox Code Playgroud)
Rob*_*b H 18
只是一个相关的提示 - 因为,正如其他答案所说,如果您需要访问可以使用的特定索引,则分组是IEnumerable group.ElementAt(i).
这对许多人来说可能是显而易见的,但希望它会帮助一些人!
Bas*_*ash 13
对于任何选定的组,您可以致电
var selectedGroupValues=selectedGroup.SelectMany(x=>x);
Run Code Online (Sandbox Code Playgroud)