如何将n个列表作为数据表的行
本文关键字:数据表 列表 | 更新日期: 2023-09-27 18:08:27
我想有一个泛型方法,实现以下目标:
我有n个Lists
(string
)我想让它们在相应的列下显示为Data Table
的行。
下面的代码可能会使我的问题更清楚:
List<string> list1 = new List<string>();
List<string> list2 = new List<string>();
List<string> list3 = new List<string>();
for (int num1 = 0; num1 < 4; num1++)
{
list1.Add(num1.ToString());
}
for (int num2 = 4; num2 < 8; num2++)
{
list2.Add(num2.ToString());
}
for (int num3 = 8; num3 < 12; num3++)
{
list3.Add(num3.ToString());
}
DataTable dtTable = new DataTable();
dtTable.Columns.Add("Column1", typeof(string));
dtTable.Columns.Add("Column2", typeof(string));
dtTable.Columns.Add("Column3", typeof(string));
for (int num4 = 0; num4 < list1.Count; num4++)
{
dtTable.Rows.Add(list1[num4], list2[num4], list3[num4]);
}
GridView2.DataSource = dtTable;
GridView2.DataBind();
在上述代码中,list1
、list2
、list3
项分别作为Column1
、Column2
、Column3
列下的行,如:
Column1 Column2 Column3
0 4 8
1 5 9
2 6 10
3 7 11
我需要大约50个列表,在50个不同的列下显示它们,最终将它们绑定到GridView
。
我不能继续手动添加列表作为行,即
dtTable.Rows.Add(list1[num4], list2[num4], list3[num4], list4[num4],.......,listn[num4]);
如何将上述内容推广到n个列表中?
请各位专家过来帮忙。
你可以试试这个。创建一个方法来处理所有列表
private void PopulateGrid(params List<string>[] list)
{
DataTable dtTable = new DataTable();
for (int listIndex = 0; listIndex < list.Length; listIndex++)
{
dtTable.Columns.Add(string.Format("Column{0}", listIndex), typeof(string));
}
for (int rowIndex = 0; rowIndex < list[0].Count; rowIndex++)
{
DataRow dr = dtTable.NewRow();
for (int listIndex = 0; listIndex < list.Length; listIndex++)
{
dr[listIndex] = list[listIndex][rowIndex];
}
dtTable.Rows.Add(dr);
}
dataGridView1.DataSource = dtTable;
}
然后创建一个主List
,这样你就可以添加任何你想要的列表
List<List<string>> allLists = new List<List<string>>();
/* Code to populate the lists */
allLists.Add(list1);
allLists.Add(list2);
allLists.Add(list3);
...
allLists.Add(listn);
然后调用方法
PopulateGrid(allLists.ToArray());