Ich arbeite an einem VB => C# -Übersetzer, und ich bin über VB-Code gelaufen, von dem ich nicht sicher bin, dass er eine direkte Übersetzung nach C# hat.C# -Äquivalent von {} .Contains() in VB
In VB können Sie so etwas wie
If {"a", "b", "c"}.Contains("c") Then ...
(und seien wir etwas Nützliches vortäuschen, die nicht immer wahr sein wird) tun
Was ich mich, wenn ein Äquivalent von diesem gibt es in C#. Das nächste, was ich mit oben kommen kann ist
if (new object[] {"a", "b", "c"}.Contains("c")) { ... }
Mein Problem dabei ist, dass ich die Art in C# definieren, was bedeutet, ich mit dem Objekt gehen müsste - da ich einen Übersetzer ich schreibe, es würde genauso gut für ein Array von int
, Array von bool
, Array von benutzerdefinierten Klassen usw. funktionieren. Ich bin mir nicht sicher, ob alles ein Objekt statt eines spezifischeren Typs sein sollte, ist eine gute Idee.
Gibt es eine Möglichkeit, den Compiler den Typ herauszufinden? Etwas logisch wie folgt aus: (Ich weiß, das nicht in Ordnung ist, aber etwas logisch äquivalent ...)
if (new var[] {"a", "b", "c"}.Contains("c")) { ... }
so behandelt es das Array als ein Array von Strings und die Enthält Parameter als auch String?
Side Frage: Ich habe den Eindruck, dass der obige VB-Code behandelt {"a", "b", "c"}
als ein Array von string
. Ist das richtig? Behandelt der obige VB-Code "a", "b" und "c" als Objekte - falls ja, verwende ich auch das Objekt in C#.
Verwenden Sie ToString(), um ein Objekt in eine Zeichenfolge zu konvertieren. – jdweng
'neu [] {...}' –