我如何动态传递类型IEnumerable <t> C#

时间:2017-10-14 21:14:26

标签: c# ienumerable

您好我想在运行时将对象类型传递给IEnumberable<T>。 例如 我必须读取CSV文件,它们都返回不同的数据集。 因此,如果我想使用单个方法,但提取一组不同的实体,而不是我能做到这一点。在下面的示例中,我想传递不同的实体而不是'Student'。

public List<Patient> GetAcgFileData(string fullFileName) {  
    using (var sr = new StreamReader(fullFileName)) {
        var reader = new CsvReader(sr);
        ////CSVReader will now read the whole file into an enumerable
        var records = reader.GetRecords<Student>().ToList();
        return records;
    }
}

1 个答案:

答案 0 :(得分:1)

您可以使您的功能采用通用

public List<T> GetAcgFileData<T>(string fullFileName) {  
    using (var sr = new StreamReader(fullFileName)) {
        var reader = new CsvReader(sr);
        ////CSVReader will now read the whole file into an enumerable
        var records = reader.GetRecords<T>().ToList();
        return records;
    }
}

然后您可以使用GetAcgFileData<Student>("somestring");

类型调用它