supongo que dado que está utilizando ArrayList, que está utilizando 1.1?
En cuyo caso, sospecho que el siguiente funcionaría:
ArrayList list = new ArrayList();
MyStruct[] array = new MyStruct[list.Count];
list.CopyTo(array);
(edición - uso ToArray de Bill es más conveniente - Yo no sabía nada de eso, pero entonces, en muy raras ocasiones [si alguna vez ] use ArrayList)
Sin embargo, si MyStruct realmente es una estructura, entonces no puedo decir con la suficiente fuerza que las estructuras mutables sean una mala idea, es decir, donde puede establecer .Name y .Content después de la creación. Las estructuras casi siempre deben ser inmutables. En realidad, su MyStruct parece que debería ser una clase. Además, no estoy "arriba" en VB, pero ¿son campos públicos? De nuevo, no recomendado, las propiedades serían preferibles. No sé acerca de VB, pero C# 3.0 tiene una sintaxis muy concisa para esto:
public class SomeType
{
public string Name {get;set;}
public string Content {get;set;}
}
Si está utilizando 2.0 o superior, considere Lista <T> en lugar de ArrayList.
No puedo hacerlo, pero * por favor * tenga en cuenta cuánto debe ser MyStruct una clase, no una estructura. Esto tiende a causar * mucha * confusión, especialmente para tipos mutables (como el suyo). –
MyStruct podría haber sido una clase, pero como no tiene ningún método, supongo que es más rápido usar una estructura. – Vincent
No; esa no es la diferencia entre las estructuras y las clases. Las estructuras pueden tener métodos en .NET; la diferencia es de tipo de referencia frente a tipo de valor. –