获取“价值” IGrouping 中的属性

发布于 2024-10-14 08:35:16 字数 471 浏览 8 评论 0原文

我有一个像这样的数据结构

public DespatchGroup(DateTime despatchDate, List<Products> products);

,我正在尝试做...

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);
}

我显然不理解IGrouping,因为我看不到如何实际获取组内的数据记录!

I have a data structure like

public DespatchGroup(DateTime despatchDate, List<Products> products);

And I am trying to do...

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);
}

I'm obviously not understanding IGrouping as I can't see how to actually get to the data records within the group!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

抱猫软卧 2024-10-21 08:35:16

该组实现 IEnumerable - 在一般情况下,只需在 group 上调用 foreach 即可。在这种情况下,因为您需要一个List

list.Add(new DespatchGroup(group.Key, group.ToList());

The group implements IEnumerable<T> - In the general case, just call foreach over the group. In this case, since you need a List<T>:

list.Add(new DespatchGroup(group.Key, group.ToList());
像你 2024-10-21 08:35:16

没有 Values 属性或类似属性,因为 IGrouping 本身IEnumerable 值序列。在这种情况下,您需要做的就是将该序列转换为列表:

list.Add(new DespatchGroup(group.Key, group.ToList());

There's no Values property or similar because the IGrouping<T> itself is the IEnumerable<T> sequence of values. All you need to do in this case is convert that sequence to a list:

list.Add(new DespatchGroup(group.Key, group.ToList());
长梦不多时 2024-10-21 08:35:16

对于任何选定的组,您可以致电

var selectedGroupValues=selectedGroup.SelectMany(x=>x);

For any selected group,you could call

var selectedGroupValues=selectedGroup.SelectMany(x=>x);
凉城 2024-10-21 08:35:16

只是一个相关的提示 - 因为正如其他答案所说,分组是一个 IEnumerable,如果您需要访问特定索引,您可以使用group.ElementAt(i)

这对很多人来说可能是显而易见的,但希望它能对一些人有所帮助!

Just a related tip - since, as the other answers have said, the grouping is an IEnumerable, if you need to access a specific index you can use group.ElementAt(i).

This is probably obvious to a lot of people but hopefully it will help a few!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文