在数组中只包含一个数字

时间:2013-10-11 15:35:30

标签: c# arrays int

如何使一个数组只包含一个数字?从添加到文本框的任何随机数我需要先将它们转换为整数然后使用分隔符我让程序理解单独的整数但是我怎么一个int到只计入一次的结果列表?

5 个答案:

答案 0 :(得分:9)

您可以从使用HashSet作为集合类型(.Net 3.5和更高版本)开始。这将禁止重复值。然后,如果您不能按原样使用HashSet,则可以在其上调用.ToArray。

那是:

 HashSet<int>

答案 1 :(得分: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();

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

您可以使用Array.Contains检查数组中是否已存在某个项目。不过,我建议使用通用集合,例如List或Dictionary。

答案 4 :(得分: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
            */