【发布时间】:2012-08-19 11:47:38
【问题描述】:
我有这个代码。我收到几个列表作为我插入到对象列表中的参数。
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) 和一次一个列表,它就起作用了。现在一团糟。
【问题讨论】:
标签: c# linq list getproperties