当前位置:  开发笔记 > 编程语言 > 正文

合并两个Collection <T>

如何解决《合并两个Collection<T>》经验,为你挑选了1个好方法。

我得到了一个返回a的函数,Collection它以递归方式调用自身,最终返回一个大函数Collection.

现在,我只是想知道合并列表的最佳方法是什么?Collection.CopyTo()只复制到string [],使用foreach()循环感觉效率低下.但是,因为我也想过滤掉重复的内容,我觉得我最终会得到一个调用Contains()它的foreach Collection.

我想知道,有一种更有效的方法来获得一个递归函数,它返回一个没有重复的字符串列表吗?我不必使用a Collection,它可以是几乎任何合适的数据类型.

只有排除,我绑定到Visual Studio 2005和.net 3.0,所以没有LINQ.

编辑:澄清:该功能将用户从Active Directory中取出,查看用户的直接报告,然后递归查看每个用户的直接报告.因此,最终结果是给定用户的"命令链"中的所有用户的列表.由于这是经常执行的,并且目前对于某些用户需要20秒,我正在寻找改进它的方法.将结果缓存24小时也在我的列表btw.,但我想看看如何在应用缓存之前改进它.



1> Mendelt..:

如果您正在使用List <>,则可以使用.AddRange将一个列表添加到另一个列表中.

或者您可以使用yield return来动态组合列表,如下所示:

public IEnumerable Combine(IEnumerable col1, IEnumerable col2)
{
    foreach(string item in col1)
        yield return item;

    foreach(string item in col2)
        yield return item;
}

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有