2016-10-17 1 views
-3

A DateTime Konstruktor erfordert 6 Argumente: Jetztein Array in einer Argumentliste konvertieren

DateTime date1 = new DateTime(2008, 1, 1, 6, 32, 0); 

habe ich

int[] dr = new int[]{2008, 1, 1, 6, 32, 0}; 

Wie kann ich das Array in der Argumentliste "convert" - so etwas wie DateTime date1 = new DateTime(dr);?

+0

'neu DateTime (dr [0], dr [1], dr [2] ....) '? –

+0

Dies ist etwas, das Sie leicht die Antwort finden können, wenn Sie eine einfache Google-Suche auf 'neue DateTime' machen google Arbeit von Ihnen aktuelle Region – MethodMan

+1

Ich verstehe nicht die Downvoting/Stimmen hier zu schließen: Es ist klar, dass OP * kennt * die richtige Signatur des Konstruktors; er will nur wissen, ob es einen Weg gibt, ein Array in sechs individuelle Parameter zu "entfalten". Die Tatsache, dass C# keine solche "Magie" bietet, reicht nicht aus, um die Frage abzulehnen. – dasblinkenlight

Antwort

3

Sie können es nicht so tun, weil der Konstruktor kein Array nimmt; es braucht sechs individuelle Parameter. Ein einfacher Ansatz des Arrays auseinander brechen sollte manuell arbeiten, aber:

var date1 = new DateTime(dr[0], dr[1], dr[2], dr[3], dr[4], dr[5]); 

Wenn Sie es in mehreren Stellen im Code zu tun haben, eine Hilfsmethode machen diesen Code zu verstecken:

static class DateHelper { 
    public DateTime MakeFromComponents(int[] dr) { 
     return new DateTime(dr[0], dr[1], dr[2], dr[3], dr[4], dr[5]); 
    } 
} 
... 
var date1 = DateHelper.MakeFromComponents(dr); 
+1

Vielen Dank; Ich muss es oft tun. Die Hilfsmethode 'hilft'. – AAsk

+0

Dies unterscheidet sich von anderen (dynamischen) Sprachen, in denen ein Array (oder besser gesagt ein Tupel) direkt als Argumentliste übergeben werden kann. –

1

Manche Dinge sind nicht so schwer, wie es scheint ...

DateTime date1 = new DateTime(dr[0], dr[1], dr[2], dr[3], dr[4], dr[5]) 

einfach in jedem Element im Array in den entsprechenden Konstruktor Parameter übergeben.

1
DateTime date1 = new DateTime(dr[0], dr[1], dr[2], dr[3], dr[4], dr[5]); 
Verwandte Themen