我有类MyClass(),我从另一个SecondClass()调用方法,它是foreach循环。在这个方法中,我有一个列表,我将一些数据。但每次调用此方法时,我的列表都会从开头填充。我丢失了以前插入的所有数据。我该如何解决这个问题?
foreach(string items in description)
{
SecondClass method = new SecondClass();
method.DoThis(items);
}
使用此方法的MyClass()看起来像这样
public void DoThis(string items)
{
List<MyClass> list2 = new List<MyClass>();
if(//somethis)
{
/// some more code
list2.Add(sk);
}
}
我编辑了代码,我犯了一些错误。遗憾
答案 0 :(得分:2)
您正在list2
范围内初始化DoThis
。
您必须将其声明为MyClass
的成员,如下所示:
class MyClass
{
//if MyClass is sealed or static, then change protected to private.
//if you need to access it from outside MyClass, change it to public.
protected List<SrodkowaKolumna> list2 = new List<SrodkowaKolumna>();
public void DoThis(string items)
{
if(//somethis)
{
/// some more code
list2.Add(sk);
}
}
}
答案 1 :(得分:0)
试试这段代码:
它应该将您的列表存储为类中的字段。当您在DoThis中初始化list2时,每个调用都会创建一个新的空列表。
public class MyClass
{
List<SrodkowaKolumna> list2;
public MyClass()
{
list2 = new List<SrodkowaKolumna>();
}
//.... other code
public void DoThis(string items)
{
for(//somethis)
{
/// some more code
list2.Add(sk);
}
}
}