C#List混装存储子类和父类对象并进行排序操作
2018-02-28 09:57
218 查看
不同的子类在List中是能够正常存储的,但是在存储时都需要以父类型存储进去,即List的类型为父类,而Add()中的类型可以声明为实际使用的类型:
`
`
虽然能够正常存储,但是在使用过程中只能使用父类的方法,而想要使用子类的方法时,为了避免类型判断,可以在父类中加入用于判定类型的标签,根据标签取出。
List.Sort()自定义排序。
因为List存储了不同子类的参数,所有需要自定义父类的Sort排序,以Prop类为例:
`
Prop newProp = new ChildProp(); newProp = prop; //prop为需要add的参数,并且已知prop为子类型ChildProp转换而来 PropInKs.Add(newProp);
`
虽然能够正常存储,但是在使用过程中只能使用父类的方法,而想要使用子类的方法时,为了避免类型判断,可以在父类中加入用于判定类型的标签,根据标签取出。
List.Sort()自定义排序。
因为List存储了不同子类的参数,所有需要自定义父类的Sort排序,以Prop类为例:
public class Prop : MonoBehaviour, IComparer<Prop> { public string Decription; public int ID; public float Weight; public PropType type; public int Compare(Prop x, Prop y) { return x.ID.CompareTo(y.ID); } }
Prop需要继承Icomparer接口,并实现Compare方法,Compare有三个返回值,1为大于,0为等于,-1为小于,Sort默认为升序。
相关文章推荐
- List对象中装载Map时以Map中的某个键值进行排序操作
- Java中对List中的存储对象根据属性进行排序的办法
- C# List按照对象属性进行排序
- C#中对List<Object>泛型集合,根据对象的某一属性进行升序排序
- Java按照List内存储的对象的某个字段进行排序的实例
- 对list对象进行去重操作,并排序
- Java依照List内存储的对象的某个字段进行排序
- Java按照List内存储的对象的某个字段进行排序
- C#对List 的对象的属性进行排序
- ArrayList和LinkedList都是实现了List接口的类,他们都是元素的容器,用于存放对象的引用; 他们都可以对存放的元素进行增删改查的操作,还可以进行排序。 但是,他们还是有区别的。
- C#List<>能按照List中的对象某个属性排序
- C# 对Llist<T>中的数据按某字段的大小进行排序
- 对象文件[置顶] 如何在 ASM 存储中使用 Data Pump (expdp impdp)进行数据导出导入操作
- C#对List中的数据进行取交集、并集、差集和去重操作的方法
- C#中List实现按照对象属性排序
- 对LIST对象多个字段进行排序
- .NET/C#中对自定义对象集合进行自定义排序的方法
- C# 利用list.sort()进行排序
- 关于c# 泛型List集合对象的用法及相关操作
- sort 根据实体类中指定的列名对List中的对象进行排序