2011-03-30 205 views
3

我有一個ArrayList有五個數字,例如1,2,3,4,5。相同的數字不能重複。我如何檢查它?ArrayList元素比較

+0

的語言C#或VB?和哪個asp.net版本? – naveen 2011-03-30 05:56:25

+0

問:你爲什麼使用ArrayList而不是泛型? – 2011-03-30 06:09:20

回答

3

您可以使用Arraylist.Contains()方法來檢查Arraylist中是否存在項目。

private void AddItems(object o) 
{ 
if(!Arraylist1.Contains(o)) 
{ 
Arraylist1.Add(o); 
} 
} 

http://msdn.microsoft.com/en-us/library/system.collections.arraylist.contains(v=VS.100).aspx

+0

+1:不應該布爾是一個更合適的返回類型? – naveen 2011-03-30 05:54:18

+0

可能是,但Arraylist.add返回一個int,而不是布爾;) – Anuraj 2011-03-30 05:58:52

+0

我的意思是,讓OP瞭解是否添加發生? :) – naveen 2011-03-30 06:00:19

0

您可以構建一個函數來檢查返回的是否定義的布爾值,比如Is_It_Defined。之後,您可以使用if語句在您想要的任何操作之前進行檢查。

1

在這段代碼中,我排序ArrayList第一。然後,我比較contacts[i]contacts[i - 1]

contacts.Sort(); // First Sort the array 

for (int i=1; i <= contacts.Count-1; i++) 
{ 
Console.WriteLine(contacts[ i ]); 
Console.WriteLine(contacts[ i-1]); 
if(contacts[ i ].ToString() == contacts[ i-1 ].ToString()) 
{ 
    Console.WriteLine("Duplicate: "+contacts[ i ]); 
} 
} 
1

使用LINQ的另一種方式:

 ArrayList list = new ArrayList { 1, 9, 2, 1, 6, 5 }; 

     var x = from l in list.OfType<int>() 
       group l by l into g 
       where g.Count() > 1 
       select g.Key; 

     if (x.Count() > 0) 
     { 
      // Duplicate found 
     }