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