Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET向循环中的类添加数据_C#_Asp.net - Fatal编程技术网

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();
    }    
}