Comment effectuer une recherche dans un tableau multidimensionnel?
En C#,
Array.Find<T>(arrayName, value);
recherches un tableau unidimensionnel. Est-il de toute façon pour ce faire, pour un tableau multidimensionnel (par exemple myArray[,,]
)?
Si vous avez besoin de faire une telle
O(dimension_1 * dimension_2 * ... * dimension_n)
de recherche plus de quelques fois, vous avez probablement fait quelque chose de très mal lors de la sélection de l'algorithme et structure de données.
OriginalL'auteur Randomman159 | 2011-05-21
Vous devez vous connecter pour publier un commentaire.
Travailler avec Excel et VSTO, je traite avec les tableaux multidimensionnels tout le temps. Il n'existe pas de fonctions intégrées pour un tableau multidimensionnel de type Array.Find().
En gros, vous avez deux choix: créer votre propre helper de méthodes et de mettre en œuvre une recherche générique motif, ou de générer une liste d'objets de domaine en corrélation avec le contenu du tableau multidimensionnel. Personnellement, j'ai tendance à choisir cette dernière option.
Si vous choisissez d'écrire une méthode d'aide, il pourrait ressembler à quelque chose (très approximativement) comme ceci:
Vous référer à la statique de l'extension de ce genre dans d'autres parties de votre code d'application:
Excellente solution. Vous avez raison, le travail w/ VSTO et Excel, c'est très utile.
OriginalL'auteur code4life
Il n'y a pas construit dans le multi-dimensionnel de la fonction de recherche. Vous devriez écrire vous-même.
OriginalL'auteur blueberryfields
Aplatir le tableau multidimensionnel et ensuite utiliser
Array.Find
.Le processus d'aplatissement prendra plus de temps que juste une boucle par et à la recherche.
Je suis d'accord, d'inlining la recherche avec le processus d'aplatissement est la meilleure approche.
OriginalL'auteur davidk01