按两个字段排序对象数组
本文关键字:字段 排序 对象 数组 两个 | 更新日期: 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
OrderBy
和ThenBy
不改变现有的集合,它们只返回已排序的集合,因此您需要将这些方法的返回值赋给deck
:
deck = deck.OrderBy(a => a.Face).ThenBy(a => a.Suit).ToArray();
您还需要使用ToArray
,否则由于类型不匹配,您将无法将值分配给deck
。