gpt4 book ai didi

c# - 从通用列表中删除重复项

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

我已经提供了从 .NET 2.0 中的通用列表 中删除重复项的解决方案,如下所示:

List<CaseStudy> caseStudies = CaseStudyDAO.FindCaseStudiesByDate(DateTime.Now.Date, DateTime.Now.Date.AddDays(1));
caseStudies.RemoveAll(
delegate(CaseStudy c)
{
return caseStudies.IndexOf(c) != caseStudies.FindIndex(
delegate(CaseStudy f) { return c.Str == f.Str; });
});

我的问题是:

有没有更有效的方法来做到这一点?只有 .NET 2.0 解决方案
上述解决方案的复杂性是什么?

谢谢,
jan2k10

最佳答案

RemoveAll 的时间复杂度是O(n)。索引的时间复杂度是 O(n),所以这是 O(n^2) 时间复杂度的总和。我认为空间复杂度为 O(1)。

有没有更有效的方法呢?是的。如果您愿意在上面花费更多空间,您可以在 O(n) 时间复杂度内完成。

关于c# - 从通用列表<T>中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2594632/

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