Person というオブジェクトのリストから拡張されたクラス (PersonCollection) で linq 操作を使用します。
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'.
リストにキャストすると機能し、それが現在使用しているものです
people = (List<Person>)people .OrderBy(s => s.name]).ToList();
人のリストから拡張された PersonCollection クラスを使用したいのですが、アプローチのどこが間違っていますか? コーディングであれ、データの分類方法の一般的な選択であれ