如何在ArrayList C#2.0中合并数据?
如何在dotnet framework 2中合并ArrayList C#中的数据如何在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
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;
}