在数组中只包含一个数字一次
本文关键字:一次 数字 数组 包含一 | 更新日期: 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
*/