Correctement à l'aide de LINQ to shuffle un pont

J'essaie d'écrire un simple jeu de cartes. Dans un effort pour arriver à un bon brassage de l'algorithme, je suis tombé sur Jeff Atwood est post sur le code de l'Horreur.

Cependant Quand j'ai vue le contenu de l'objet après l'appel du Constructeur, ils ne sont pas mélangées.

Voici ma tentative d'utilisation de Jeff Solution:

class MainDeck : List<Card>
{
   public MainDeck()
    {
        this.Add(new Card(1, "Hearts"));
        this.Add(new Card(2, "Hearts"));
        this.Add(new Card(3, "Hearts"));
        ...

        this.OrderBy(a => Guid.NewGuid());
    }
}

voici le code de la Carte:

class Card
    {
        string suit;
        int value;

        public Card(int value, string suit)
        {
            this.value = value;
            this.suit = suit;
        }

        bool isFaceCard()
        {
            if (value >= 11 || value == 1)
                return true;
            else
                return false;
        }

        public override string ToString()
        {
            return (value +", " + suit);
        }
    }

Que dois-je modifier pour que le brassage de travail?

  • S'il vous plaît montrer le code de la Carte. Peut-être que c'est juste moi, mais sans que je ne vois pas comment nous pouvons vous aider.
  • Vous devez comprendre que OrderBy retourne une collection ordonnée - il n'a pas de tri en place. Je voudrais aussi valoir que Jeff est uniquement de transférer à partir d'une source de la pseudo-aléatoire à l'autre en utilisant une version modifiée de Fisher-Yates shuffle avec un décent source de l'aléatoire est plus propre qu'à l'aide de OrderBy, de l'OMI.
  • Code Ajouté. Toutefois, la question n'a rien à voir avec la Carte de la Classe, il a à faire avec n'importe quel type d'objet énumérable
  • Comment pourrais-je commande le contenu de mon objet par le Guid alors?
  • En utilisant le Guid pour le tri peut être une mauvaise idée. Voir Eric Lippert commentaire de une réponse différente que les états "Utilisation guid pour générer de l'unicité, de ne jamais l'aléatoire".
InformationsquelleAutor jth41 | 2013-10-05