Question

Peut-ArrayList ci-dessous être initialisé directement, sans la nécessité de tableau de chaînes aFileExt?

private static string[] aFileExt = 
     {"css", "gif", "htm", "html", "txt", "xml" };
private System.Collections.ArrayList alFileTypes =
     new System.Collections.ArrayList(aFileExt);

La ligne ci-dessous est le but, mais mon compilateur .Net ne l'aime pas:

private static System.Collections.ArrayList alFileTypes = 
     new System.Collections.ArrayList({"css","gif","htm","html","txt","xml"});

J'utilise le Micro Framework .net et n'ont donc pas accès à des types génériques.

Était-ce utile?

La solution

C # 1 ou 2:

private static ArrayList alFileTypes = 
     new ArrayList(new string[] {"css","gif","htm","html","txt","xml"});

C # 3 en utilisant un tableau implicitement tapé:

private static ArrayList alFileTypes = 
    new ArrayList(new[] {"css","gif","htm","html","txt","xml"});

C # 3 en utilisant une collection initialiseur:

private static ArrayList alFileTypes = 
    new ArrayList{"css","gif","htm","html","txt","xml"};

Ou créer votre propre méthode d'assistance:

public static ArrayList CreateList(params object[] items)
{
    return new ArrayList(items);
}

alors:

static ArrayList alFileTypes = CreateList("css","gif","htm","html","txt","xml");

Toute raison pour laquelle vous n'êtes pas en utilisant les collections génériques, btw?

Autres conseils

Si vous utilisez .NET 2.0 ou plus, vous devriez utiliser le type de List<T> générique (même si elle est List<object>, qui vous aurait donné les mêmes fonctionnalités que ArrayList).

Si vous utilisez .NET 3.5 ou plus, vous pouvez utiliser cette syntaxe:

private static List<string> fileTypes = new List<string>()
{ 
    "css","gif","htm","html","txt","xml" 
};

De toute façon, cependant, si vous voulez coller avec ArrayList, vous pouvez simplement faire:

private static System.Collections.ArrayList alFileTypes = 
 new System.Collections.ArrayList(new object[] {"css","gif","htm","html","txt","xml"});

C # 3.0 avec un List<T> générique, plutôt que d'un 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"});

Essayez

private static System.Collections.ArrayList alFileTypes =   new System.Collections.ArrayList(){"css","gif","htm","html","txt","xml"};

oui, il suffit de changer

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"});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top