在数组中只包含一个数字一次

本文关键字:一次 数字 数组 包含一 | 更新日期: 2023-09-27 18:35:10

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

在数组中只包含一个数字一次

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

那是:

 HashSet<int>

您可以使用 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();

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

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

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

检查 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
            */