1

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

4

5 回答 5

9

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

那是:

 HashSet<int>
于 2013-10-11T15:38:31.410 回答
2

您可以使用不同的方法

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();
于 2013-10-11T15:37:41.363 回答
0

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

var numbers = new[] { 1, 2, 2, 3 };
numbers = numbers.Distinct().ToArray(); // 1, 2, 3
于 2013-10-11T15:37:25.810 回答
0

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

于 2013-10-11T15:37:31.893 回答
0

检查LINQ方法不同

示例使用:

  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
            */
于 2013-10-11T15:39:46.750 回答