Wie kann ich schnell up-cast object[,] in double[,]?

Ich mit Microsoft.Office.Interop.Excel bekomme ich kehrte ein 2D-array vom Typ object[,] enthält double für Elemente. Beachten Sie, dass die index-Untergrenze ist 1 anstelle der Standard -0, aber ich kann damit umgehen, dass einfach.

Wie kann schön konvertieren Sie das array in double[,] mit .NET 3.5. (von schön, ich meine präzise, oder kompakt).

Beachten Sie, dass

double[] values_2 = values.Cast<double>().ToArray();

funktioniert, aber es flacht durch ein array in ein 1D-Struktur.

  • Es gibt keinen "schnellen" Weg, es zu tun. Kopieren Sie nun alle Daten in ein neues array, wenn das, was Sie wollen.
  • Davor hatte ich Angst. Was .NET 4.0 ? Wird es jemals eine geben sicheren Weise zu tun, Office-Interop?
  • schnell wie in "ohne cpu" oder schnell wie in "a-one-line-Anweisung"
  • Sie können sich wahrscheinlich tun es in einer Linie mit linq, aber es nicht geht, schneller in Bezug auf die Rechenleistung.
  • Ich sollte hinzufügen, dass das zwei verschiedene arrays (2D-array von double - und 2D-array von object mit 1-basierten Indizes) sind sehr unterschiedliche Objekte. Es gibt keine Möglichkeit, zu wirken zwischen Ihnen.
InformationsquelleAutor ja72 | 2011-02-22
Schreibe einen Kommentar