数据集由两列表组成。表名=项目。一列名称=名称,其他列名称=资源。有多个重复的项目名称。
var dataset = FakeDataset.CreateDataset();
var projectList = new List<Project>();
foreach (DataTable table in dataset.Tables)
{
foreach (DataRow dataRow in table.Rows)
{
projectList.Add(new Project { Name = Convert.ToString(dataRow["Name"]), Resource = Convert.ToString(dataRow["Resource"]) });
}
}
现在我每次为数据集中的单个项目名称创建一个Project对象。我想要的是 - 仅为数据集中的唯一项目名称创建Project对象。我是初学者,所以这是一个很好的简单解决方案。
答案 0 :(得分:0)
没有经过测试,我不确定我是否理解正确,但是我的假设 你想要这样的东西:
var dataset = FakeDataset.CreateDataset();
var projectList = new List<Project>();
foreach (DataTable table in dataset.Tables)
{
foreach (DataRow dataRow in table.Rows)
{
if(projectList.Any(Project => Project.Name == dataRow["Name"]))
projectList.Add(new Project { Name = Convert.ToString(dataRow["Name"]), Resource = Convert.ToString(dataRow["Resource"]) });
}
}
编辑:
var dataset = FakeDataset.CreateDataset();
var projectList = new List<Project>();
foreach (DataTable table in dataset.Tables)
{
foreach (DataRow dataRow in table.Rows)
{
if (!projectList.Any(Project => Project.Name == Convert.ToString(dataRow["Name"])))
{
projectList.Add(new Project { Name = Convert.ToString(dataRow["Name"]), Resource = Convert.ToString(dataRow["Resource"]) });
}
else
{
Project p = projectList.Find(Project => Project.Name == Convert.ToString(dataRow["Name"]));
projectList[projectList.IndexOf(p)].Resource += "\r\n" + Convert.ToString(dataRow["Name"]);
}
}
}