按两个字段对对象数组进行排序

时间:2015-09-26 11:32:29

标签: c# sorting object

我正在使用卡片类制作一个简单的套牌类,并在洗牌后尝试再次对牌组进行排序。 这是我的代码:

deck.OrderBy(a => a.Face).ThenBy(a => a.Suit); //不工作

你会如何解决这个问题?无需对代码进行重大更改。 我尝试过使用Linq OrderBy和ThenBy,但似乎没有用。

编辑:试过这个,它的工作原理是deck = deck.OrderBy(a => Enum.Parse(typeof(Suit),a.Suit))。ThenBy(a => Enum.Parse(typeof(Face), a.Face))ToArray的();因为我使用enum for Face and Suit

1 个答案:

答案 0 :(得分:2)

OrderByThenBy不会更改现有集合,它们只返回已排序的集合,因此您需要将这些方法的返回值分配给deck

deck = deck.OrderBy(a => a.Face).ThenBy(a => a.Suit).ToArray();

您还需要使用ToArray,否则由于类型不匹配,您将无法将值分配给deck