我在类 (PersonCollection) 上使用 linq 操作,该类是从名为 Person 的对象列表扩展而来的。
public class PersonCollection: List<Person>
{
//various functions
}
public class Person
{
public string name{ get; set; }
public string address { get; set; }
}
最初我使用字符串列表来存储该类所包含的数据,并且 linq 操作可以工作
List<List<String>> oldList = GetList();
oldList = (List<List<string>>)oldList .OrderBy(s =>s[index_of_name]).ToList();
这可行,但我显然想摆脱使用本质上是快速代码的概念证明
应用于这些新类的相同类型的 linq 操作不起作用:
people = (PersonCollection)orderedData.OrderBy(s => s.name]).ToList();
这是我得到的错误:
Unable to cast object of type 'System.Collections.Generic.List`1[Person]' to type 'PersonCollection'.
如果我投到 List 它可以工作,这就是我现在使用的
people = (List<Person>)people .OrderBy(s => s.name]).ToList();
我想使用从人员列表扩展而来的 PersonCollection 类,我的方法哪里出错了?无论是编码还是数据分类方式的一般选择