2013-10-11 93 views

回答

9

你可以用一个HashSet作为集合类型开始(.NET 3.5及更高版本) 。这将禁止重复值。然后,如果你不能按原样使用HashSet,你可以在它上面调用.ToArray。

即:

HashSet<int> 
0

使用LINQ的Distinct方法来删除重复项:

var numbers = new[] { 1, 2, 2, 3 }; 
numbers = numbers.Distinct().ToArray(); // 1, 2, 3 
0

您可以使用Array.Contains来检查,如果一个项目在数组中已经存在。不过,我建议使用泛型集合,如List或Dictionary。

2

您可以使用DISTINCT方法

input.Split(new char[]{separator},StringSplitOptions.RemoveEmptyEntries) 
    .Select(x=>int.Parse(x)) 
    .Distinct(); 

如果你想避免LINQ

var array=input.Split(new char[]{separator},StringSplitOptions.RemoveEmptyEntries); 
var set=new HashSet<int>(); 
foreach(var x in array)set.Add(int.Parse(x)); 
var unique=set.ToArray(); 
+0

谢谢你的努力,但我'一类的新手,我仍然在努力避免LINQ,出于某种原因吓到我。 –

+0

@ХристоХристов检查编辑 – Anirudha

0

检查LINQ方法Distinct

使用例:

List<int> ages = new List<int> { 21, 46, 46, 55, 17, 21, 55, 55 }; 

      IEnumerable<int> distinctAges = ages.Distinct(); 

      Console.WriteLine("Distinct ages:"); 

      foreach (int age in distinctAges) 
      { 
       Console.WriteLine(age); 
      } 

      /* 
      This code produces the following output: 

      Distinct ages: 
      21 
      46 
      55 
      17 
      */ 
相关问题