【问题标题】:Sorting INT variables C#对 INT 变量进行排序 C#
【发布时间】:2017-12-05 09:28:41
【问题描述】:

我刚开始用 c# 编程;

我得到了一个我想要排序的 int 变量列表,并找到数字 1。

int Weapon_Count1, Weapon_Count2, Weapon_Count3, Weapon_Count4, Weapon_Count5, Weapon_Count6, Weapon_Count7, Weapon_Count8, Weapon_Count9

我需要对数组进行此操作吗?

通过使用 C# 黄皮书,我发现了如何制作数组,但我不知道如何将变量分配给数组。

int [] Weapon_Count = new int [11]  ;
for ( int i=0; i<11; i=i+1)
{
Weapon_Count [i] =  ??? ;}

我希望这确实有意义..

【问题讨论】:

  • int[] 武器 = { Weapon_Count1, Weapon_Count2, Weapon_Count3, Weapon_Count4, Weapon_Count5, Weapon_Count6, Weapon_Count7, Weapon_Count8, Weapon_Count9 };

标签: c# arrays sorting rank


【解决方案1】:

在我们开始之前,您可以编辑您的数组,使其如下所示:

int[] weapons = { Weapon_Count1, Weapon_Count2, Weapon_Count3, Weapon_Count4, Weapon_Count5, Weapon_Count6, Weapon_Count7, Weapon_Count8, Weapon_Count9 };

这意味着您已经创建了一个名为武器的数组,并且它包含整数值。

完成此操作后,让我们找出数组中的哪个元素的值为 1。 要找到哪个值的值为“1”,我们必须查看数组中的每个元素,我们可能会通过几种方式做到这一点,但我推荐foreachfor loop,在这种情况下我将选择 foreach 循环。

foreach(var item in weapons)
{
   if (item == 1)
   //Do something 
}

上面的意思是,循环遍历我的所有元素,如果其中一些元素等于第一,请做一些事情..

附言

(我可能建议创建一个变量来保存一个值为“1”的元素,当您在循环中找到它时将该变量分配给该元素,然后您可以使用该变量做任何您想做的事情..如果您认为会有更多的元素值为 1 并且您需要所有这些元素,而不是我上面提到的变量,您将创建 list 或数组来保存所有元素,您也可以稍后对它们进行任何操作你想。)

谢谢,如果您对这种解决方案感兴趣,请给我留言,如果您仍在苦苦挣扎,请让我帮助您解决这个问题。

【讨论】:

    【解决方案2】:

    假设要检查的变量列表有限,最简单的方法是将它们放入一个临时数组中,然后从System.Linq 命名空间调用Max()Min()

    int maxCount = new int[] { Weapon_Count1, Weapon_Count2, Weapon_Count3, Weapon_Count4, Weapon_Count5, Weapon_Count6, Weapon_Count7, Weapon_Count8, Weapon_Count9 }.Max(); // or .Min()
    

    编辑

    如果您仍想将这些变量放入数组中,我建议使用具有动态大小的System.Collections.Generic.List 和诸如.Add() 之类的辅助方法来简化操作。列表也可以与我回答的第一部分类似的 Linq 函数一起使用。有关不同 C# 数据类型和函数的一些非常好的示例,请参阅 Dot Net Perls

    编辑 2

    正如@kblok 所说,您需要在文件顶部添加using System.Linq; 以访问Max 和Min 等函数。如果您想尝试使用 List 类型,您还需要添加 using System.Collections.Generic;。如果您使用的是 Visual Studio 2017(也许是 2015 年?),您可以输入数据类型,然后点击 Ctrl + . 以获取可能包含该数据类型的命名空间的建议。

    【讨论】:

    • 我收到此错误:错误 CS1061:“int[]”不包含“Max”的定义,并且没有扩展方法“Max”接受“int[]”类型的第一个参数找到(您是否缺少 using 指令或程序集引用?)(CS1061)(测试)
    • @RobJansen 尝试添加using System.Linq;
    【解决方案3】:

    这可能会对你有所帮助。

            // Declaring the array
            int[] Weapon_Count;
    
            // Initializing the array with a size of 11
            Weapon_Count = new int[11];
    
            // Adding values to the array
            for (int i = 0; i < Weapon_Count.Length; i++)
            {
                Weapon_Count[i] = i + 100;
            }
    
            // Printing the values in the array
            for (int i = 0; i < Weapon_Count.Length; i++)
            {
                Console.WriteLine(Weapon_Count[i]);
            }
    
    
            // Same thing with a list
            // Daclare and initializing the List of integers
            List<int> weapon_list = new List<int>();
    
            // Adding some values 
            weapon_list.Add(1);
            weapon_list.Add(2);
            weapon_list.Add(3);
            weapon_list.Add(4);
            weapon_list.Add(5);
    
            // Printing weapin_list's values
            for (int i = 0; i < weapon_list.Count; i++)
            {
                Console.WriteLine(weapon_list[i]);
            }
    
            // This is just for the console to wait when you are in debug mode.
            Console.ReadKey();
    

    如果你想使用列表,不要忘记包含 using 语句(简而言之 - 可以改变大小的动态数组。)

    using System.Collections.Generic;
    

    【讨论】:

      【解决方案4】:

      请让我解释一下如何使用 C# 数组。

      这将创建一个具有 5 个元素的未初始化整数数组:

      int[] a1= new int[5];
      

      分配值 9、8、7、6 和 5:

      (请注意,只能使用 0 到 4 的索引。索引 5 无效。)

      a1[0]=9;
      a1[1]=8;
      a1[2]=7;
      a1[3]=6;
      a1[4]=5;
      

      同样可以只用一行来实现:

      int[] a1= new int[] {9,8,7,6,5};
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-25
        • 1970-01-01
        • 1970-01-01
        • 2020-08-03
        • 2012-06-26
        • 2016-07-07
        • 2011-02-25
        相关资源
        最近更新 更多