Si c'est basé sur 0, comment pouvons-nous ajouter un espace réservé pour le rendre basé sur 1? Je vous remercie.Est-ce que Collection (Of T) est un tableau basé sur 0 ou un tableau basé sur 1?
Répondre
Il est basé sur 0. Une question de retour pourrait être: pourquoi voulez-vous faire en 1 base?
avec des méthodes d'extension, vous pouvez (si vous voulez) faire:
<Extension()>
Public Function GetOneBased(Of T)(ByVal list As IList(Of T), ByVal index As Integer) As T
Return list(index-1)
End Function
<Extension()>
Public Sub SetOneBased(Of T)(ByVal list As IList(Of T), ByVal index As Integer, ByVal value As T)
list(index-1) = value
End Sub
utiliser ensuite (de presque toute collection):
Dim foo = data.GetOneBased(1)
data.SetOneBased(1, bar)
Parce que l'ancien code utilisé la collection qui est à base de 1, alors maintenant je simplifie, mais si elle est basée sur 0, il y aura un grand nombre des déclarations doivent être modifiées. Alors ... –
Adam: merci pour le service de traduction VB ;-p –
est basé sur 0. Si vous voulez faire 1 basé pourquoi ne pas faire une méthode de lecture qui accepte un index en supprime un, puis l'utiliser et retourner la valeur?
Vous pouvez utiliser Insert(int index, T item) pour insérer un élément à la position 0 , mais je pense que vous feriez mieux de faire l'arithmétique d'index et le référencement comme une collection basée sur 0. C'est ce que la plupart des programmeurs viennent après vous attendre. @ L'idée de la méthode d'extension de Robert a une certaine valeur, mais je pense qu'elle finira par embrouiller les éventuels responsables de votre code.
Pourquoi voudriez-vous le faire en mode 1? Les tableaux de VB.Net utilisaient également des index basés sur 0.
- 1. Ada initialisant un tableau basé sur l'entrée de l'utilisateur
- 2. Trouver les éléments d'un tableau basé sur la somme minimale
- 3. UI: "Page 1 sur 0" OU "Page 1 sur 1" OU "Page 0 sur 0" pour ZERO lignes?
- 4. Comment supprimer une valeur d'un tableau associatif basé sur un objet dans Flex 3?
- 5. Regex sur un tableau?
- 6. Comment déployer un pilote basé sur .inf?
- 7. log4cxx basé sur le temps basé sur Windows
- 8. Supprimer XElement basé sur l'attribut
- 9. style basé sur l'attribut d'élément?
- 10. Basé sur un thème usercontrol asp.net
- 11. Logiciel de conception basé sur un nœud?
- 12. Existe-t-il un conteneur split asp.net basé sur Microsoft?
- 13. Retour un tableau de tableaux via le service web basé sur PHP WSDL
- 14. L'ensemble de résultats est basé sur le succès ou l'échec
- 15. y a-t-il un wiki basé sur SQLite?
- 16. Dimensionnement automatique colonne basé sur un modèle dans un ListView basé Multicolumn TreeView
- 17. Python d'itération sur un tableau 3D
- 18. Trouver un gestionnaire de produit basé sur PHP
- 19. Mysql join basé sur max (timestamp)
- 20. Historique basé sur le déclencheur
- 21. Feedly est basé sur ce que le cadre ajax?
- 22. Comment créer un DIV basé sur la taille du navigateur?
- 23. Le support C# est-il disponible pour un tri basé sur un index?
- 24. Typecasting basé sur une variable
- 25. Validateur HTML basé sur PHP
- 26. Fusionner ou combiner un tableau comme celui-ci? sur PHP
- 27. Ce qui est basé sur mach_absolute_time sur iPhone
- 28. Modifier le lien sur un sitemap basé sur si un utilisateur est connecté?
- 29. Quelle est la meilleure façon d'initialiser un tableau sur un tableau de longueur fixe? (C++/CLI)
- 30. Éditeur CSV basé sur PHP?
Vous feriez mieux d'avoir * vraiment * une bonne raison d'envisager cela. Passer à un conteneur basé sur 1 dans un monde de conteneurs à base de 0 est garanti pour confondre les programmeurs qui doivent maintenir ou travailler avec ce code à l'avenir. –
OK, merci pour votre avertissement, je vais trouver une autre façon lol –