c# - 使用 Linq 将 native C# 数组乘以一个因子

标签 c# linq

我对使用 Linq 将数组乘以一个因子很感兴趣。

我当前的代码是:

public static double[] multiply(double[] x, double factor)
{
    if (x == null) throw new ArgumentNullException();
    double[] result = new double[x.Length];
    for (int i = 0; i < x.Length; i++)
    {
        result[i] = x[i] * factor;
    }
    return result;
}

在 Linq 中执行此操作的最有效方法是什么,它会提供更好的性能吗?

最佳答案

您可以像这样通过 LINQ 做到这一点:

double[] result = x.Select(r=> r * factor).ToArray();

效率高吗?不太确定。但它只是简洁,即使有性能提升也可以忽略不计。 LINQ 内部使用循环,所以你的方法可以是:

public static double[] multiply(double[] x, double factor)
{
    if (x == null) throw new ArgumentNullException();
    return x.Select(r => r * factor).ToArray();
}

关于c# - 使用 Linq 将 native C# 数组乘以一个因子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23249332/

相关文章:

c# - 如何接收并发的udp套接字响应?

c# - 递归 Linq - 子属性的父指示?

c# - linq查询必须返回一个字符串

c# - 有没有办法使用 linq 遍历对象列表的属性?

c# - LogicalCallContext 中 Hashtable 的线程安全

c# - 为什么 azure 服务总线订阅会报告事件消息,但 onmessage 却没有检索到任何内容

c# - jBPM自定义授权

c# - CefSharp JavaScript 注入(inject)

c# - "A lambda expression with a statement body cannot be converted to an expression tree"

c# - 使用 LEFT JOIN 到 LINQ 表达式语法的多个连接语句