J'ai cette liste p>
var list = nouvelle liste {3, 1, 0, 5, 5}; p>
Je veux échanger l'élément 0 avec 2 p>
sortie 0, 1, 3, 5 p>
3 Réponses :
Swap classique est ...
int temp = list[0]; list[0] = list[2]; list[2] = temp;
Si vous voulez juste que ce soit trié, j'utiliserais list.sort ().
Si vous souhaitez échanger, il n'y a pas de méthode intégrée pour le faire. Il serait facile d'écrire une méthode d'extension, cependant: p> vous pouvez alors faire: p>
Tu me bats! Je retournerais toujours un iéenérable.
Vous ne pouvez pas accéder à un index iEnumerable, de sorte que votre méthode ne fonctionnerait pas. Vous pouvez retourner un comportement iéonnant, mais ce serait un comportement potentiellement inattendu, sauf si vous avez construit une copie, car vous retourneriez la collection modifiée. Construire une copie ajouterait des frais généraux.
Vous pouvez accéder à un iNeumable par index en utilisant énumérable.Elementat.
@Joe Chung: Mais ce n'est pas "vraiment" en utilisant ienumer
@Reedcopsey Vous devriez faire une extension iliste, alors cela fonctionne pour l'observablecollection et les goûts aussi.
@stijn True, si vous souhaitez l'exposer à tous les types ilist
Dans le cas où quelque chose n'est pas directement pris en charge ... Faites-le donc le numéro 1!
Regardez le concept de " Méthodes d'extension ". Avec cela, vous pouvez facilement faire en sorte que votre liste prend en charge le concept de swap () (ceci s'applique à tout moment à prolonger la fonctionnalité d'une classe). p>
Dupliqué possible de Swap deux éléments de la liste