C# ASP.NET向循环中的类添加数据
我这里有这个代码:C# ASP.NET向循环中的类添加数据,c#,asp.net,C#,Asp.net,我这里有这个代码: for (int i = 0; i < reader.FieldCount; i++) { RedBlue item = new RedBlue(); if (reader.GetName(i).ToString().Contains("BID")) { item.baselinefinish = reader.GetValue(i).ToString(); } if (reader.GetName(i).ToS
for (int i = 0; i < reader.FieldCount; i++)
{
RedBlue item = new RedBlue();
if (reader.GetName(i).ToString().Contains("BID"))
{
item.baselinefinish = reader.GetValue(i).ToString();
}
if (reader.GetName(i).ToString().Contains("AID"))
{
item.actualenddate = reader.GetValue(i).ToString();
}
redBlue.Add(item);
}
for(int i=0;i
我试图循环遍历数据并将其添加到类中,但我的问题是在我的类中,我有两个字符串,我希望像这样填充每个字符串(第一个字符串得到循环中的第一个项目,第二个字符串得到循环中的第二个项目,并继续这样做,因此,不是循环中的每个项目,而是循环中的每两个项目,将它们添加到字符串中并继续…我真的希望这是有意义的。有人知道我将如何做到这一点吗
当前的情况是,它将向类中添加一个字符串,然后将第二个字符串添加到新类中。您可以使用Automapper执行以下操作: (根据我记忆中的框架、模型和您的示例改编)
我不确定我是否会这样做,但现在您正在每次迭代中创建一个新对象,因此每个对象都只有一个字符串 如果您的数据如您所说,每秒包含BID和AID元素,那么作为穷人的解决方案,您只需在添加第一个字符串后增加i
for (int i = 0; i < reader.FieldCount; i++)
{
RedBlue item = new RedBlue();
if (reader.GetName(i).ToString().Contains("BID"))
{
item.baselinefinish = reader.GetValue(i).ToString();
i++;
}
if (reader.GetName(i).ToString().Contains("AID"))
{
item.actualenddate = reader.GetValue(i).ToString();
}
redBlue.Add(item);
}
for(int i=0;i
或者我遗漏了什么?不确定我是否遵循了您的想法,但您可以使用偶数或奇数索引号来表示循环中的第一项和第二项 诸如此类:
for (int i = 0; i < reader.FieldCount; i++)
{
RedBlue item = null;
//if it's even index number
if(i % 2 == 0){
item = new RedBlue();
redBlue.Add(item);
if (reader.GetName(i).ToString().Contains("BID"))
item.baselinefinish = reader.GetValue(i).ToString();
}else{
if (reader.GetName(i).ToString().Contains("AID"))
item.actualenddate = reader.GetValue(i).ToString();
}
}
for(int i=0;i
所以你想在你用阅读器读取的数据和你新的红蓝色对象中的数据之间自动映射字段,对吗?我想是的,我一直在用头撞墙来解决这个问题。要想自动地做到这一点,你应该看看Automapper“我真的希望这有意义”不完全是这样。听起来好像您正在尝试读取(数据库?)实体的属性并(动态地)将它们添加到您的类RedBlue?请向我们展示(db实体)和RedBlue的定义。此外,这一行“RedBlue.add(item)”是什么;什么是“RedBlue”“它是RedBlue的一个实例吗?如果有两个以上的字段,我认为解决不了问题。它将开始覆盖数据。我想象数据是类似于出价值、援助值、出价值、援助值、出价值、援助值……等等的东西
for (int i = 0; i < reader.FieldCount; i++)
{
RedBlue item = new RedBlue();
if (reader.GetName(i).ToString().Contains("BID"))
{
item.baselinefinish = reader.GetValue(i).ToString();
i++;
}
if (reader.GetName(i).ToString().Contains("AID"))
{
item.actualenddate = reader.GetValue(i).ToString();
}
redBlue.Add(item);
}
for (int i = 0; i < reader.FieldCount; i++)
{
RedBlue item = null;
//if it's even index number
if(i % 2 == 0){
item = new RedBlue();
redBlue.Add(item);
if (reader.GetName(i).ToString().Contains("BID"))
item.baselinefinish = reader.GetValue(i).ToString();
}else{
if (reader.GetName(i).ToString().Contains("AID"))
item.actualenddate = reader.GetValue(i).ToString();
}
}