【问题标题】:Contain a number just once in an array在数组中只包含一个数字
【发布时间】:2013-10-11 15:35:29
【问题描述】:

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

【问题讨论】:

    标签: c# arrays int


    【解决方案1】:

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

    即:

     HashSet<int>
    

    【讨论】:

      【解决方案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();
      

      【讨论】:

      • 感谢您的努力,但我是一个新手,我仍在尝试避免使用 LINQ,出于某种原因让我感到害怕。
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            猜你喜欢
            • 2013-05-06
            • 1970-01-01
            • 2011-11-30
            • 2022-12-01
            • 1970-01-01
            • 2019-10-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多