Pregunta

¿Puede el ArrayList a continuación inicializar directamente sin la necesidad de una matriz de cadenas aFileExt?

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

La siguiente línea es el objetivo, pero mi compilador .Net no le gusta:

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

Estoy utilizando el .NET Micro Framework y por lo tanto no tienen acceso a tipos genéricos.

¿Fue útil?

Solución

C # 1 o 2:

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

C # 3 utilizando una matriz implícitamente mecanografiado:

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

C # 3 usando un inicializador colección:

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

O crear su propio método de ayuda:

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

a continuación:

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

Cualquier razón por la que no está utilizando las colecciones genéricas, por cierto?

Otros consejos

Si está utilizando .NET 2.0 o mayor, usted debe utilizar el tipo List<T> genéricos (incluso si es List<object>, lo que le da la misma funcionalidad que ArrayList).

Si está utilizando .NET 3.5 o superior, puede utilizar esta sintaxis:

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

De cualquier manera, sin embargo, si desea seguir con ArrayList, sólo se puede hacer:

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

C # 3.0 con un List<T> genérico, en lugar de 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"});

Trate

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

Sí, solo cambia

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

a

private static System.Collections.ArrayList alFileTypes = 
     new System.Collections.ArrayList(new string[] {"css","gif","htm","html","txt","xml"});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top