我创建了一个带有Datables和列表的GridView,我遇到了一个问题: GridView
我的GridView有重复的答案。 1 id_template有1个name_template,但可以有很多id_forms(和许多名称:1个名称为1)。 我想合并它,以便拥有1个ID,1个名称,以及它们的ID和名称。 我的代码是这样的:
DataTable dt = new DataTable();
dt.Columns.Add("Id_Template");
dt.Columns.Add("Name_Template");
dt.Columns.Add("Id_Form_List");
dt.Columns.Add("Name_Form_List");
for (int i = 0; i < listeIdForm.Count; i++)
{
dt.Rows.Add(listeIdTemplate[0], listeNomTemplate[0], listeIdForm[i], listeNomForm[i]);
}
GridView3.DataSource = dt;
GridView3.DataBind();
关闭课程,1我是实体&#34;实体&#34;,所以我想制作一个模板,以便有相同的表设计&#34;对于每个实体。没有数据库数据源可以做到吗?
答案 0 :(得分:1)
您可以压缩所有这些列表(为什么您没有这些属性的单个类?)然后使用GroupBy
来获取所需的组:
var tableSource = listeIdTemplate
.Zip(listeNomTemplate, (id, nom) => new { id, nom })
.Zip(listeIdForm, (x, idForm) => new { x, idForm })
.Zip(listeNomForm, (x, nomForm) => new { x.x.id, x.x.nom, x.idForm, nomForm })
.GroupBy(x => new { x.id, x.nom });
foreach (var idNomGroup in tableSource)
dt.Rows.Add(
idNomGroup.Key.id,
idNomGroup.Key.nom,
string.Join(",", idNomGroup.Select(x => x.idForm)),
string.Join(",", idNomGroup.Select(x => x.nomForm)));