如何在ArrayList C#2.0中合并数据?

如何在ArrayList C#2.0中合并数据?,c#,arraylist,C#,Arraylist,如何在dotnet framework 2中合并ArrayList C#中的数据 example of data : 1, 2, 2, 3, 4, 5, 5, 6, 6 how to get 1, 2, 3, 4, 5, 6 不过,您应该使用列表而不是ArrayList 编辑:按照Kobi的建议,使用排序+二进制搜索的替代解决方案: // Assuming your data is an ArrayList called "source" source.Sort(); ArrayList de

如何在dotnet framework 2中合并ArrayList C#中的数据

example of data : 1, 2, 2, 3, 4, 5, 5, 6, 6
how to get 1, 2, 3, 4, 5, 6
不过,您应该使用列表而不是ArrayList

编辑:按照Kobi的建议,使用排序+二进制搜索的替代解决方案:

// Assuming your data is an ArrayList called "source"
source.Sort();
ArrayList dest = new ArrayList();
foreach (int i in source) if (dest.BinarySearch(i)<0) dest.Add(i);
//假设您的数据是名为“source”的ArrayList
source.Sort();
ArrayList dest=新的ArrayList();

foreach(源中的int i)if(dest.BinarySearch(i)这感觉又脏又黑,嗯,我喜欢!phoenix的建议是fasterIt最好使用
Sort
BinarySearch
,ArrayList已经有了这些方法。ArsenMkrt:你分析过它吗?它确实取决于输入数据集,但是实例化哈希表并将数据复制到新的ArrayList中有点昂贵进程。@arul我刚刚做了一些非常粗略的测试,对于一个带有@Badaro的数组,这个答案中没有“漂亮的Linq”。@Ash检查历史,作者删除了Linq部分(这就是为什么我也删除了我的评论)。他这么做可能是因为问题是C#2.0,但我认为他也应该保留这两个示例。
// Assuming your data is an ArrayList called "source"
ArrayList dest = new ArrayList();
foreach(int i in source) if(!dest.Contains(i)) dest.Add(i);
// Assuming your data is an ArrayList called "source"
source.Sort();
ArrayList dest = new ArrayList();
foreach (int i in source) if (dest.BinarySearch(i)<0) dest.Add(i);
public ArrayList RemoveDups ( ArrayList input )
{
    ArrayList single_values = new ArrayList();

    foreach( object item in input)
    {
        if( !single_values.Contains(item) )
        {
            single_values.Add(item);
        }
    }
    return single_values;
}