私はこのコードを持っています。オブジェクトのリストに挿入するパラメーターとして、いくつかのリストを受け取ります。
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
};
}
次に、のすべてのリストを実行しList(object) listObj
、それらをデータテーブルに変換して、各データテーブルの各リストのコンテンツを追加するforeachがあります。
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++;
}
次に、datatableメソッドに変換します。
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;
}
問題は、ListlistObj内の各リストのプロパティを取得していないということです。List<Receivables> genRecList
ではList<Dilution> genDilList
、
どうすればList<Accountable> genAccList
、、、、プロパティにアクセスできList<Outstanding> genOutList
ますか?
私は以前にこれを行っていましたがList(T)
、一度に1つのリストを使用して、機能しました。今、それは混乱です。