我有一个arraylist包含来自不同数据库的值,但它存储一些重复的值,所以我想删除重复的值并在ARRay列表中只存储唯一的值。如何从ARRAYLIST删除重复的值
那么,这怎么可能实现呢?
在此先感谢... Mitesh
我有一个arraylist包含来自不同数据库的值,但它存储一些重复的值,所以我想删除重复的值并在ARRay列表中只存储唯一的值。如何从ARRAYLIST删除重复的值
那么,这怎么可能实现呢?
在此先感谢... Mitesh
如果必须使用ArrayList,使用排序方法。 这是一个很好的链接@Sort Method of ArrayList。 对列表进行排序后,使用算法迭代/比较所有元素并删除重复项。
玩得开心,
汤米Kwee
我不想排序,但想删除重复。 –
@Mitesh,列表排序后,您可以通过迭代所有元素来删除重复项。 –
Distinct方法自身删除重复项。如果您要使用linq方法,请使用正确的方法。 – Falanwe
让我们尝试另一种方法。相反,删除重复,避免添加任何重复。这可能会在您的环境中更有效率。 下面是一个示例代码:
ArrayList<String> myList = new ArrayList<string>();
foreach (string aString in myList)
{
if (!myList.Contains(aString))
{
myList.Add(aString);
}
}
Hashtable ht = new Hashtable();
foreach (string item in originalArray){
//set a key in the hashtable for our arraylist value - leaving the hashtable value empty
ht[item] = null;
}
//now grab the keys from that hashtable into another arraylist
ArrayList distincArray = new ArrayList(ht.Keys);
在上面的代码添加行之前:Hashtable ht = new Hashtable(); – sanjay
您可以使用此代码时有一个ArrayList
ArrayList arrayList;
//Add some Members :)
arrayList.Add("ali");
arrayList.Add("hadi");
arrayList.Add("ali");
//Remove duplicates from array
for (int i = 0; i < arrayList.Count; i++)
{
for (int j = i + 1; j < arrayList.Count ; j++)
if (arrayList[i].ToString() == arrayList[j].ToString())
arrayList.Remove(arrayList[j]);
}
非常优雅感谢。我有一个问题,重复的最后一个元素没有删除,但我解决了循环2次。 – Nicola
您可以编辑答案并提交给其他成员;坦克很多 –
你是如何在ArrayList中添加值的工作? –
您使用的是哪个版本的.NET框架? –
可能的重复[在C#中删除列表](http://stackoverflow.com/questions/47752/remove-duplicates-from-a-listt-in-c-sharp) –
adatapost