C# le moyen le plus rapide pour changement de tableau

Comment puis-je basculer rapidement tous les éléments dans un tableau à gauche, rembourrage de la fin avec la valeur null?

Par exemple, [0,1,2,3,4,5,6] devient [1,2,3,4,5,6,null]

Edit: je l'ai dit rapidement, mais je suppose que je voulais dire de manière efficace. J'ai besoin de faire cela sans créer une Liste ou une autre structure de données. C'est quelque chose que j'ai besoin de faire plusieurs centaines de milliers de fois dans le plus court laps de temps que possible.

  • ne devrait-elle pas être [1,2,3,4,5,6,null]
  • Je voudrais être en mesure de faire sur n'importe quel indice, soit 0, 1 ou 4
  • Pouvez-vous clearify rapide? Entendez-vous rapide en un minimum de lignes de code, ou plus rapide que dans la performance de la algorithim etc...
  • Votre exemple ci-dessus n'est pas un "shift" - un changement implique la suppression du premier élément dans le tableau, vous êtes désireux de le retirer de tout indice.
  • Si vous avez besoin de faire plusieurs centaines de milliers de fois, vous utilisez peut-être la mauvaise structure de données.
  • Jimmy, Ce qui pourrait éventuellement être plus rapide qu'une discbased qui a compilateur instructions. Quelle structure de données dois-je utiliser. Je tiens également à préciser que ce tableau ne sera pas très long, jamais plus de 100 articles.
  • il suffit d'utiliser une boucle for, comme suggéré ou d'un Tableau.Copie, rien ne devrait être plus rapide que celui
  • Une file d'attente, en fait, être plus rapide qu'un tableau, le compilateur instructions nonobstant. Une file d'attente maintient de début et de fin des pointeurs, de sorte qu'il peut retirer l'élément premier (ou le dernier élément) en O(1) temps (par rapport à O(n) pour le tableau). Si les valeurs doivent être retirés du milieu, puis une liste liée serait mieux, mais alors que les changements de la complexité des autres opérations.
  • Dested: Heh. "Ce qui pourrait éventuellement être plus rapide qu'un tableau?!"... Ainsi, une liste liée dans ce cas... Cependant, je vais jouer l'avocat du diable ici, et de se demander Si il n'y a qu'100 éléments dans le tableau, comment rapide est-il vraiment besoin de l'être? Est-ce votre application goulot d'étranglement?". Sauf si vous faites quelque chose de critique pour les performances, arrêtez de prendre soin. Et si vous faites quelque chose de critique pour les performances, puis nous allons voir quelques profiler les numéros s'il vous plaît?
  • Sur votre exemple vous demander de déplacer les éléments d'un tableau. La réponse choisie, cependant, traite votre tableau comme immuables et en crée un nouveau... ce qui est plus lent en raison de l'appeler pour l'allocateur.
  • LinkedList vous permet de jouer avec les deux extrémités de la collection avec la facilité. Pourrait être intéressant d'envisager la circulaire tableaux et les goûts.

InformationsquelleAutor Dested | 2010-03-04