2011-03-30 126 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 
     }