سؤال

وكيف لاتحاد البيانات في ArrayList C # في إطار DOTNET 2؟

example of data : 1, 2, 2, 3, 4, 5, 5, 6, 6
how to get 1, 2, 3, 4, 5, 6
هل كانت مفيدة؟

المحلول

// Assuming your data is an ArrayList called "source"
ArrayList dest = new ArrayList();
foreach(int i in source) if(!dest.Contains(i)) dest.Add(i);

ويجب أن تكون باستخدام قائمة <كثافة> بدلا من ArrayList، وإن كان.

وتحرير: الحل البديل باستخدام ترتيب + BinarySearch، على النحو الذي اقترحه كوبي:

// 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);

نصائح أخرى

Hashtable htCopy = new Hashtable();

foreach (int item in arrListFull) 
{   
    htCopy[item] = null;
}

ArrayList distinctArrayList = new ArrayList(htCopy.Keys);
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;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top