按两个字段排序对象数组

本文关键字:字段 排序 对象 数组 两个 | 更新日期: 2023-09-27 18:14:49

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

甲板上。顺序(a => a. face)。then (a => a. suit);//不工作

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

编辑:试过这个,它的工作甲板=甲板。OrderBy(a => Enum)。解析(typeof (Suit), a.s Suit))。然后(a => Enum)。解析(typeof (Face), a.Face)).ToArray();因为我使用enum Face和Suit

按两个字段排序对象数组

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

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

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