首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从IGrouping中删除元素

如何从IGrouping中删除元素
EN

Stack Overflow用户
提问于 2012-08-29 00:44:41
回答 3查看 5.8K关注 0票数 11

如何从IGrouping IGrouping<DateTime, VMAppointment>中直接删除对象

据我所知,目前唯一的方法是在没有相关元素的情况下生成一个新的IGrouping,但我不喜欢这种方式,因为它会在我的应用程序中造成一些麻烦。

有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-29 00:46:59

不,没有办法改变IGrouping<,>,至少在一般情况下是这样--即使你知道具体的类型,我也不相信.NET框架公开的任何实现都允许改变这个组。

假设分组是某个查询的结果-因此,如果可能,请更改原始查询以排除您不感兴趣的值。

票数 9
EN

Stack Overflow用户

发布于 2014-10-23 00:31:13

我知道这是一个老生常谈的问题,但希望这能帮助其他人。解决此问题的方法是将组转换为列表,然后使用列表中的值而不是组。

代码语言:javascript
复制
var groups = someList.GroupBy(x => x...);

foreach (var group in groups)
{
    var groupList = group.ToList();

   ...

    groupList.Remove(someItem);

    //Process the other code from groupList.
}
票数 4
EN

Stack Overflow用户

发布于 2018-06-01 03:02:01

如果您的组中的某个属性具有可测试条件(如示例中的null ),则可以使用SelectTakeWhile进行转换:

代码语言:javascript
复制
var removedItemsList = group.Select(x => x.TakeWhile(t => t.someProperty != null));

这将返回一个IEnumerable<IEnumerable<YourGroup>>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12163855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档