如何直接从 IGrouping 中删除对象IGrouping<DateTime, VMAppointment>
?
我目前知道的唯一方法是生成一个没有相关元素的新 IGrouping,但我不喜欢这种方式,因为它会在我的应用程序中造成一些麻烦。
有任何想法吗?
如何直接从 IGrouping 中删除对象IGrouping<DateTime, VMAppointment>
?
我目前知道的唯一方法是生成一个没有相关元素的新 IGrouping,但我不喜欢这种方式,因为它会在我的应用程序中造成一些麻烦。
有任何想法吗?
不,至少在一般情况下,没有办法改变 a IGrouping<,>
——即使你知道具体的类型,我也不相信 .NET 框架公开的任何实现都允许改变组。
推测分组是某些查询的结果 - 因此,如果可能,请更改原始查询以排除您不感兴趣的值。
我知道这是一个老问题,但希望这对其他人有帮助。解决方法是将组转换为列表,然后使用列表中的值而不是组。
var groups = someList.GroupBy(x => x...);
foreach (var group in groups)
{
var groupList = group.ToList();
...
groupList.Remove(someItem);
//Process the other code from groupList.
}
如果您在组中的属性上有可测试的条件(例如示例中的 null),则可以强制转换 usingSelect
和 use :TakeWhile
var removedItemsList = group.Select(x => x.TakeWhile(t => t.someProperty != null));
这将返回一个IEnumerable<IEnumerable<YourGroup>>
.