次のような 2 つのリストがあるとします。
IEnumerable<Student> students;
IEnumerable<Teacher> teachers;
そして、学生リストを XML ファイルにエクスポートして取得するメソッドを作成しました。
IEnumerable<Student>
入力として。
いずれかのリストを渡して、生徒のリストまたは教師のリストであることを気にせずにメソッドにデータをエクスポートさせる方法はありますか?
次のような 2 つのリストがあるとします。
IEnumerable<Student> students;
IEnumerable<Teacher> teachers;
そして、学生リストを XML ファイルにエクスポートして取得するメソッドを作成しました。
IEnumerable<Student>
入力として。
いずれかのリストを渡して、生徒のリストまたは教師のリストであることを気にせずにメソッドにデータをエクスポートさせる方法はありますか?
リスト内の各アイテムは、自分自身をエクスポートする方法を知っている必要があります。各アイテムIExportable
に、メソッドを持つようなインターフェースを実装させる必要がありますExport
。次に、次のようなメソッドを作成できます。
public static void ExportAll(IEnumerable<IExportable> sequence)
{
//...
}
次に、それ自体をエクスポートする方法を知っている任意のタイプのリストを渡すことができます。
IExportable
アイテムをエクスポートする他の手段を使用する予定がない限り、最終的にISerializable
はあなたのためになる可能性があります。
基本抽象クラスから継承し、シリアル化でうまく機能します。
public abstract class Person
{
// your code goes here
// public string FirstName { get; set; }
// public string LastName { get; set; }
}
public class Student : Person
{
// your code goes here
}
public class Teacher : Person
{
// your code goes here
}
public void Export(IEnumerable<Person> persons)
{
// your code goes here
}