我有这个代码。我收到几个列表作为我插入到对象列表中的参数。
public static void SaveTransactionsToSeparateFiles(List<Receivables> genRecList, 
    List<Dilution> genDilList, List<Accountable> genAccList, string excelFile, 
    string typeReport, List<Outstanding> genOutList = null)
{
    List<object> listObj = new List<object> 
    { 
        genRecList, 
        genDilList, 
        genAccList, 
        genOutList 
    };
}
然后我有一个 foreach ,我在其中遍历所有列表List(object) listObj,将它们转换为数据表,并在每个数据表中添加每个列表的内容。
foreach (var obj in listObj)
{
    DataTable genTable = HelperMethods.ConvertListToDataTable(obj, true);
    Worksheet pantaReiWorkSheet = pantaReiWorkSheets[sheet.SheetName];
    int iRow = 0;
    foreach (DataRow row in genTable.Rows)
    {
        iRow++;
        int iCol = 0;
        foreach (DataColumn col in genTable.Columns)
        {
            iCol++;
            pantaReiWorkSheet.Cells[iRow + 1, iCol] = row[col.ColumnName];
        }
    }
    i++;
}
然后我有转换为数据表的方法。
public static DataTable ConvertListToDataTable(object genList, bool toExcel)
{
    DataTable genDt = new DataTable();
    PropertyInfo[] p =  p.genList.GetType().GetProperties();
    for (int prop = 1; prop < p.Length - 2; prop++)
    {
        genDt.Columns.Add(new DataColumn(p[prop].Name, p[prop].PropertyType));
    }
    foreach (object t in (IEnumerable<object>)genList)
    {
        DataRow genDR = genDt.NewRow();
        for (int prop = 1; prop <  p.Length - 2; prop++)
        {
            genDR[p[prop].Name] = p[prop].GetValue(t, null);
        }
        genDt.Rows.Add(genDR);
    }
    return genDt;
}   
问题是,我没有在 List listObj 中获取每个列表的属性。那么,如何访问List<Receivables> genRecList, List<Dilution> genDilList,
             List<Accountable> genAccList,List<Outstanding> genOutList属性?
我以前做过这个,但是List(T)一次只有一个列表,它起作用了。现在是一团糟。