c# - 倒序堆叠数组

标签 c# arrays

我正在尝试创建一个数组,该数组由一个输入数组(长度=N)和相同的数组以相反的顺序组成,以便输出数组的长度为(2N)。就像如果输入 = {1,2,3} 那么输出 ={1,2,3,3,2,1}

这是我尝试过的:

public static double[] stack(double[] input)
{
    int N = input.Length;
    var z = new double[2 * N];
    input.CopyTo(z, 0);
    Array.Reverse(input).CopyTo(z, N);

    return z;
}

但这会引发错误(运算符不能应用于 void 类型)。请问我哪里错了?这是最快的方法吗?

最佳答案

作为another answer指出它为什么不起作用,我将专注于如何使用 Linq 更轻松地编写它。

public static double[] Stack(double[] input)
{
    return input.Concat(input.Reverse())
                 .ToArray();
}

Linq 让生活更轻松:)

关于c# - 倒序堆叠数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23286752/

相关文章:

c# - 在 Windows Phone 8 中读取 QR 码和条形码

c# - .NET Core 3.1 - Linux 容器 : Clean Shutdown 中的 Worker 服务

c# - 如何使用 TcpClient 对上传进行速率限制?

模板类中的 C++ 静态常量数组初始化

c# - 在单线程中的 List.Add 期间,什么可能导致 "Destination array was not long enough"?

c# - 将带双引号和单引号的字符串从 EF 保存到 SQL

C# double.ToString() 最大位数和尾随零

c# - 将字符串的一部分放入数组

c++ - 指针、数组和新运算符

php - 在 PHP 中计算数组的中位数