加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 以相反的顺序将数组值传递给另一个数组

发布时间:2020-12-15 19:29:07 所属栏目:百科 来源:网络整理
导读:我想将int []值传递给int b [].但我面临困惑.任何人都可以纠正我. b的输出是0,45,4,2,1.它应该像7,6,5,1. static void Main(){ int[] a = new int[] { 1,7 }; int[] b = new int[7]; int temp = 0; for (int i = 0; i = a.Length - 1; i++) { b[(b.Length -
我想将int []值传递给int b [].但我面临困惑.任何人都可以纠正我. b的输出是0,45,4,2,1.它应该像7,6,5,1.

static void Main()
{
    int[] a = new int[] { 1,7 };
    int[] b = new int[7];
    int temp = 0;

    for (int i = 0; i <= a.Length - 1; i++)
    {
        b[(b.Length - i) - 1] = a[i];

        Console.WriteLine(b[i]);
    }     
}

解决方法

这里的问题是你从b的最后一个索引开始插入项目,但是你从第一个索引开始输出它们.复制项目的代码是正确的,但是您需要调整将结果输出到控制台的行,以使用您刚刚用于插入项目的相同索引来显示b中的项目.

请注意,您可以进行其他一些改进,例如使用数组初始化程序语法,使用a.Length实例化b而不是硬编码数字,删除未使用的临时变量,使用i< a.Length表示for条件(而不是i< = Length - 1,它在每次迭代时执行减法操作),并将b索引存储在变量中而不是计算两次:

static void Main()
{
    int[] a = new int[] {1,7};
    int[] b = new int[a.Length];

    for (int i = 0; i < a.Length; i++)
    {
        int bIndex = b.Length - i - 1;
        b[bIndex] = a[i];
        Console.WriteLine(b[bIndex]);
    }

    Console.ReadLine();
}

但是,这仍然会按照插入顺序输出项目,这与它们在a中的显示顺序相同.如果要显示b中的项目与a相反,最简单的方法是在填充b后执行此操作.注意我们可以在这里使用string.Join方法用逗号连接每个项目:

static void Main()
{
    int[] a = new int[] {1,7};
    int[] b = new int[a.Length];

    for (int i = 0; i < a.Length; i++)
    {
        b[b.Length - i - 1] = a[i];
    }

    Console.WriteLine($"'a' array: {string.Join(",",a)}");
    Console.WriteLine($"'b' array: {string.Join(",b)}");

    Console.ReadLine();
}

产量

enter image description here

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读