小编Pim*_*Pim的帖子

使用FastMember将不同的对象列表转换为DataTable

我编写了一个方法,使用NuGet中的FastMember将通用列表转换为DataTable .

这是我的代码:

public  DataTable ConvertGenericListToDataTable(List<CustomObject> inputList)
{
    var dt = new DataTable();
    using (var reader = ObjectReader.Create(inputList))
    {
         dt.Load(reader);
    }
    return dt;
}


var customObject = new List<CustomObject>();
var dt = ListToDataTable.ConvertGenericListToDataTable(customObject);
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.Customobject是我创建的自定义对象,我有几个不同的列表,我想传递给我的方法:List<CustomobjectA>或者List<CustomobjectB>等等.为我想要转换为DataTable的每种类型的列表编写方法并不是一个问题,但这可能会一遍又一遍地重复相同的代码行,这显然是我想要防止的

我尝试将参数的类型更改为List<object>List<dynamic>.然后我的代码将无法编译,因为:"ConvertGenericListToDataTable的最佳重载方法匹配有一些无效的参数".

有没有办法可以将对象列表作为参数传递而不定义对象的确切类型?

c#

5
推荐指数
1
解决办法
2741
查看次数

标签 统计

c# ×1