我有以下C#类/函数:

    class Hand
    {

    private List<Card> myCards = new List<Card>();

    public void sortBySuitValue()
    {
        IEnumerable<Card> query = from s in myCards
                                  orderby (int)s.suit, (int)s.value
                                  select s;

        myCards = new List<Card>();
        myCards.AddRange(query);
    }
 }


在纸牌游戏上。这样做很好,但是起初我遇到麻烦,而不是使用myCards = new List();。要“重置” myCard,我将使用myCards.clear(),但是,一旦调用clear函数,便无法调用myCards.add()或myCards.addRange()。计数将保持为零。我目前的方法好吗?使用LINQ对我的卡进行排序是好是坏?

最佳答案

这会工作

    class Hand
    {

    private List<Card> myCards = new List<Card>();

    public void sortBySuitValue()
    {
        myCards = (from s in myCards
                                  orderby (int)s.suit, (int)s.value
                                  select s).ToList();
    }
 }

10-05 19:04