Initialisieren Arraylist mit konstanten wörtlichen
-
19-09-2019 - |
Frage
unterhalb der Arraylist direkt für aFileExt String-Array ohne die Notwendigkeit initialisiert werden?
private static string[] aFileExt =
{"css", "gif", "htm", "html", "txt", "xml" };
private System.Collections.ArrayList alFileTypes =
new System.Collections.ArrayList(aFileExt);
In der Zeile darunter ist das Ziel, aber mein .NET Compiler nicht, wie es:
private static System.Collections.ArrayList alFileTypes =
new System.Collections.ArrayList({"css","gif","htm","html","txt","xml"});
Ich bin das .NET Micro Framework und haben somit keinen Zugriff auf generische Typen.
Lösung
C # 1 oder 2:
private static ArrayList alFileTypes =
new ArrayList(new string[] {"css","gif","htm","html","txt","xml"});
C # 3 eine implizit typisierte Array mit:
private static ArrayList alFileTypes =
new ArrayList(new[] {"css","gif","htm","html","txt","xml"});
C # 3 mit einer Auflistungsinitialisierer:
private static ArrayList alFileTypes =
new ArrayList{"css","gif","htm","html","txt","xml"};
oder Ihre eigene Hilfsmethode erstellen:
public static ArrayList CreateList(params object[] items)
{
return new ArrayList(items);
}
dann:
static ArrayList alFileTypes = CreateList("css","gif","htm","html","txt","xml");
Gibt es Gründe, warum Sie nicht die generischen Auflistungen verwenden, btw?
Andere Tipps
Wenn Sie .NET 2.0 oder höher verwenden, sollten Sie die generische List<T>
Typ sein, mit (auch wenn es List<object>
, mit dem Sie die gleiche Funktionalität wie ArrayList
gegeben hätte).
Wenn Sie .NET 3.5 oder höher verwenden, können Sie diese Syntax verwenden:
private static List<string> fileTypes = new List<string>()
{
"css","gif","htm","html","txt","xml"
};
So oder so, aber wenn Sie mit ArrayList
haften möchten, können Sie einfach tun:
private static System.Collections.ArrayList alFileTypes =
new System.Collections.ArrayList(new object[] {"css","gif","htm","html","txt","xml"});
C # 3.0 mit einem allgemeinen List<T>
, anstatt einer ArrayList
:
private static List<string> alFileTypes =
new List<string> {"css","gif","htm","html","txt","xml"};
private static System.Collections.ArrayList alFileTypes =
new System.Collections.ArrayList(new string [] {"css","gif","htm","html","txt","xml"});
Versuchen
private static System.Collections.ArrayList alFileTypes = new System.Collections.ArrayList(){"css","gif","htm","html","txt","xml"};
Ja, nur ändern
private static System.Collections.ArrayList alFileTypes =
new System.Collections.ArrayList({"css","gif","htm","html","txt","xml"});
private static System.Collections.ArrayList alFileTypes =
new System.Collections.ArrayList(new string[] {"css","gif","htm","html","txt","xml"});