2010-12-06 8 views
2

J'ai besoin de passer un tableau à une fonction en C# où le tableau peut être une chaîne [], int [], ou double [] et peut être de 1 à plusieurs dimensions.Comment passer un tableau générique en C#?

Raisonnement:

Je besoin de passer un tableau à une fonction pour calculer sa longueur, semblable à:

public int getLength(array[] someArray, int dimension) 
{ 
    if(dimension > 0) //get length of dimension 
    return someArray.getLength(dimension); 
    else //get length of entire array 
    return someArray.Length; 
} 

Question:

Comment puis-je passer un tableau générique?

Ou

est-il une meilleure façon de le faire - dire convertir le tableau à une liste?

Répondre

4

Pour le but que vous citez, il suffit de passer Array someArray - cela devrait aller, et couvre un certain nombre de dimensions. Pour un vecteur (un tableau à base de 0, basé sur 0), vous pouvez utiliser des génériques (GetLength<T>(T[] someArray)) - mais cela semble inutile lorsque pour un vecteur .Length est plus pratique.

Mais pour un nombre inconnu de dimensions (ou pour un tableau unidimensionnel non vectoriel), vous êtes limité à Array.

+0

C'est ce que j'avais besoin. Je ne savais pas que Array existait réellement. Merci. –

+0

@Todd - c'est la classe de base pour les vecteurs, c'est-à-dire 'int []: Array' –

0

Si vous voulez List propriétés -comme, vous pouvez également utiliser ArrayList, qui détient un nombre arbitraire de object s

Questions connexes