我有一個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