2014-04-23 6 views
7

Ich bin daran interessiert, mit Linq ein Array mit einem Faktor zu multiplizieren.Multiplizieren Sie ein natives C# -Array mit einem Faktor mit Linq

Mein aktueller Code ist:

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

Was ist die effizienteste Methode, um dies in Linq zu tun, und es wird eine bessere Leistung bieten?

+0

Downvoter: möchten Sie erklären? – drexiya

Antwort

8

Sie können, dass durch LINQ tun:

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

es effizient sein würde? nicht wirklich sicher. Aber es ist nur prägnant, selbst wenn es einen Leistungsgewinn gibt, wäre es vernachlässigbar. LINQ intern verwendet Schleifen, So könnte Ihre Methode lauten:

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

Ja das ist nett, danke. – drexiya

+0

@drexiya, Sie sind willkommen. – Habib

Verwandte Themen