按className的字母顺序对列表排序
本文关键字:列表 排序 顺序 className | 更新日期: 2023-09-27 18:14:01
我正在做一些关于Unity/c#的练习,其中一个我有一个包含一些继承类的列表。
public List<Item> items = new List<Item>();
每个Item都是一个继承类,如PowerUp,ConceptArt,Bonus,它们都继承自Item…
我想使用项目类的名称对该列表进行排序。
基本上如果我有list
myList = { Bonus,ConceptArt, PowerUp, PowerUp,ConceptArt }
如果我对它排序,输出将是:
myList = { Bonus,ConceptArt, ConceptArt, PowerUp,PowerUp}
我该怎么做?
我不知道我是否解释清楚了。如果我需要编辑,请告诉我:)thx:)
试试这个:
items = items.OrderBy(x => x.GetType().Name).ToList();
在位置对进行排序,而不新建列表:
myList.Sort((Comparison<Item>)
((left, right) => String.Compare(left.GetType().Name, right.GetType().Name)));
检查/测试:
String report = String.Join(", ", myList
.Select(item => item.GetType().Name));
Console.Write(report);