2014-04-23 12 views
7

Tôi quan tâm đến việc sử dụng LINQ để nhân một mảng theo một yếu tố.Nhân một mảng C# bản địa với một yếu tố bằng cách sử dụng LINQ

mã hiện tại của tôi là:

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; 
} 

phương pháp hiệu quả nhất để làm điều này trong LINQ là gì, và nó sẽ cung cấp hiệu suất tốt hơn?

+0

Downvoter: bạn có muốn giải thích không? – drexiya

Trả lời

8

Bạn có thể làm điều đó thông qua LINQ như:

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

Nó sẽ có hiệu quả? không thực sự chắc chắn. Nhưng nó chỉ là ngắn gọn, ngay cả khi có hiệu suất đạt được nó sẽ là không đáng kể. LINQ sử dụng nội bộ vòng lặp, Vì vậy, phương pháp của bạn có thể là:

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

Có điều này là tốt đẹp, cảm ơn. – drexiya

+0

@drexiya, bạn được chào đón. – Habib

Các vấn đề liên quan