Python-ähnliches Listen-Entpacken in C #?

8

In Python kann ich so etwas machen:

%Vor%

Gibt es eine Möglichkeit, dies oder etwas ähnliches in C # zu tun? Grundsätzlich möchte ich in der Lage sein, eine Liste von Argumenten an eine beliebige Funktion zu übergeben und sie als Parameter der Funktion anwenden zu lassen, ohne die Liste manuell zu entpacken und die Funktion explizit unter Angabe der Parameter aufzurufen.

    
ryeguy 20.02.2009, 04:28
quelle

5 Antworten

6

Nun, der nächste wäre die Reflexion, aber das ist auf der langsamen Seite ... aber schauen Sie sich an MethodInfo.Invoke ...

    
Marc Gravell 20.02.2009, 04:49
quelle
3

Sie können das Schlüsselwort params verwenden, wenn Sie Ihre Methode definieren, und dann können Sie Ihre Liste (nach dem Aufruf von ToArray) direkt in Ihren Methodenaufruf einfügen.

%Vor%

... was Sie später mit dem folgenden Aufruf aufrufen können.

%Vor%

Als Referenz: Ссылка

    
eremzeit 04.10.2011 15:55
quelle
1

Sie können nicht, Dinge, die nahe sind mit ein wenig Hand waving (entweder zu einer foreach, oder fügen Sie eine foreach Erweiterung Methode auf die Sammlung, die ein Lambda nimmt), aber nichts so elegant wie Sie in Python bekommen .

    
Matt Briggs 20.02.2009 04:53
quelle
1

Mit LINQ können Sie das tun, was Ihrem Beispiel ziemlich nahe kommt.

%Vor%     
Brian Rasmussen 20.02.2009 04:49
quelle
0
%Vor%

oder:

%Vor%

Das ist am ehesten in c #, wenn man bedenkt, dass es statisch getippt ist. Sie können in F #s Mustervergleich nach genau dem suchen, was Sie suchen.

    
Henrik 20.02.2009 04:56
quelle

Tags und Links