我在Unity / C#上做了一些练习,其中一个我有一个包含一些继承类的列表。
public List<Item> items = new List<Item>();
每个Item都是一个继承的类,如PowerUp,ConceptArt,Bonus,他们都是来自Item ...
我想使用项目类的名称对该列表进行排序。
基本上如果我有清单
myList = { Bonus,ConceptArt, PowerUp, PowerUp,ConceptArt }
如果我对它进行排序,输出将为:
myList = { Bonus,ConceptArt, ConceptArt, PowerUp,PowerUp}
我该怎么做?
我不知道我是否清楚地解释了自己。 如果我需要编辑,请告诉我:)
thx:)
答案 0 :(得分:2)
试试这个:
items = items.OrderBy(x => x.GetType().Name).ToList();
答案 1 :(得分:2)
要在适当位置排序,而不创建新列表:
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);