C# 问题:添加到自定义类类型的列表

C# 问题:添加到自定义类类型的列表,c#,ios,sqlite,xamarin.ios,C#,Ios,Sqlite,Xamarin.ios,这对某些人来说很可能是一个非常基本的问题,但我无法理解它。基本上,我有一个用于列表的自定义类: public class CorrectiveMaintResults { public string Comment { get; set; } public string Cleared { get; set; } } 我最终将其存储在一个数据库中,在注释和清除的每个项目之间放置一个换行分隔符。然后我将其检索并放回表中。为了实现这一点,我创建了两个私有列表,从数据库中获取注释和清

这对某些人来说很可能是一个非常基本的问题,但我无法理解它。基本上,我有一个用于列表的自定义类:

public class CorrectiveMaintResults
{
    public string Comment { get; set; }
    public string Cleared { get; set; }
}
我最终将其存储在一个数据库中,在注释和清除的每个项目之间放置一个换行分隔符。然后我将其检索并放回表中。为了实现这一点,我创建了两个私有列表,从数据库中获取注释和清除的数据

我试图做的是创建一个for或foreach循环,将这两个私有列表添加回我的自定义列表(correctiveMainResults)。这就是我正在尝试的:

for (int i = 0; i < correctiveMainComment.Count; i++)
{
    maintResults.Comment = correctiveMainComment[i];
    maintResults.Cleared = correctiveMainCleared[i];

    FormResults.correctiveMainResults.Add(maintResults);
}
我遇到的问题是,当结果添加到FormResults.correctiveMainResults时,它似乎只是每个列表的最后一个索引,并且只是复制它


希望有人能帮助或理解我的意思。在没有实际看到应用程序运行的情况下很难解释。

您只在循环之外创建了一个对象。试着这样做:

for (int i = 0; i < correctiveMainComment.Count; i++) {
    CorrectiveMaintResults maintResults = new CorrectiveMaintResults();
    maintResults.Comment = correctiveMainComment[i];
    maintResults.Cleared = correctiveMainCleared[i];

    FormResults.correctiveMainResults.Add(maintResults);
}
for(int i=0;i
您只在循环外创建了一个对象。试着这样做:

for (int i = 0; i < correctiveMainComment.Count; i++) {
    CorrectiveMaintResults maintResults = new CorrectiveMaintResults();
    maintResults.Comment = correctiveMainComment[i];
    maintResults.Cleared = correctiveMainCleared[i];

    FormResults.correctiveMainResults.Add(maintResults);
}
for(int i=0;i
您应该在循环中创建一个新的
CorrectiveMaintResults
,而不是覆盖同一对象的属性。只需在循环内移动初始化行。类似于@linuxrocks。感谢帮助说明:for循环所做的是将同一对象引用多次添加到列表中。这意味着列表中的每个条目都指向同一个对象。在您的最后一个循环之后保存帮助列表的最后一个索引的值(因此是重复的)。@croxy Ok感谢您的解释。谢谢!您应该在循环中创建新的
CorrectiveMaintResults
,而不是覆盖同一对象的属性。只需在循环内移动初始化行。类似于@linuxrocks。感谢帮助说明:for循环所做的是将同一对象引用多次添加到列表中。这意味着列表中的每个条目都指向同一个对象。在您的最后一个循环之后保存帮助列表的最后一个索引的值(因此是重复的)。@croxy Ok感谢您的解释。谢谢!谢谢,做得很好!一旦它让我接受了答案,工作就棒极了!一旦让我接受答案,我会接受的