1

次のような 2 つのリストがあるとします。

IEnumerable<Student> students;
IEnumerable<Teacher> teachers;

そして、学生リストを XML ファイルにエクスポートして取得するメソッドを作成しました。

IEnumerable<Student>

入力として。

いずれかのリストを渡して、生徒のリストまたは教師のリストであることを気にせずにメソッドにデータをエクスポートさせる方法はありますか?

4

3 に答える 3

2

リスト内の各アイテムは、自分自身をエクスポートする方法を知っている必要があります。各アイテムIExportableに、メソッドを持つようなインターフェースを実装させる必要がありますExport。次に、次のようなメソッドを作成できます。

public static void ExportAll(IEnumerable<IExportable> sequence)
{
    //...
}

次に、それ自体をエクスポートする方法を知っている任意のタイプのリストを渡すことができます。

IExportableアイテムをエクスポートする他の手段を使用する予定がない限り、最終的にISerializableはあなたのためになる可能性があります。

于 2013-01-31T15:14:28.747 に答える
1

基本抽象クラスから継承し、シリアル化でうまく機能します。

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
}
于 2013-01-31T15:23:09.413 に答える