gpt4 book ai didi

c# - 从列表中删除项目的最佳方法

转载 作者:行者123 更新时间:2023-11-30 19:25:19 25 4
gpt4 key购买 nike

我有一个包含 500.000 到 1.000.000 个 MyClass 实例的列表,它具有以下属性:

class MyClass
{
string ParentId;
string Name;
DateTime StartDate;
DateTime EndDate;
}

数据可能是这样的:

ParentId | Name    | StartDate    | EndDate
----------------------------------------------
parent1 | alpha | 01-01-2011 | 02-02-2015
parent1 | beta | 01-01-2011 | 02-02-2014
parent2 | gamma | 01-01-2012 | 02-02-2011

我需要过滤列表,使其包含“alpha”和“gamma”对象。应排除“beta”对象,因为它与 alpha 具有相同的父对象,但 EndDate 更早。

即结果列表应该只包含每个 ParentId 的一个实例(具有最新 EndDate 的实例)。

过滤需要表现良好。

最佳答案

您可以使用 GroupBy选择:

var filtered = list
.GroupBy(mc=>mc.ParentId)
.Select(g=>g.OrderByDescending(mc=>mc.EndDate).First())
.ToList();

关于c# - 从列表中删除项目的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29672034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com