c#列表。添加复杂性
我有一个类MyClass(),在这个类中,我从另一个第二个类()调用方法,它是在foreach循环中完成的。在这个方法中,我有一个列表,我把一些数据放在其中。但每次调用此方法时,我的列表从一开始就被填充。我丢失了以前插入的所有数据。我如何解决这个问题c#列表。添加复杂性,c#,winforms,visual-studio-2010,C#,Winforms,Visual Studio 2010,我有一个类MyClass(),在这个类中,我从另一个第二个类()调用方法,它是在foreach循环中完成的。在这个方法中,我有一个列表,我把一些数据放在其中。但每次调用此方法时,我的列表从一开始就被填充。我丢失了以前插入的所有数据。我如何解决这个问题 foreach(string items in description) { SecondClass method = new SecondClass(); method.DoThis(items); } 使用此方法的MyClas
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);
}
}
public void DoThis(字符串项)
{
List list2=新列表();
if(//somethis)
{
///还有代码吗
清单2.添加(sk);
}
}
我编辑了代码,有一些错误。抱歉请尝试以下代码:
它应该将您的列表存储为类中的字段。当您在DoThis中初始化list2时,每次调用都会生成新的空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);
}
}
}
公共类MyClass
{
清单2;
公共MyClass()
{
list2=新列表();
}
//……其他代码
公共void DoThis(字符串项)
{
对于(//somethis)
{
///还有代码吗
清单2.添加(sk);
}
}
}
您正在初始化列表2
内的点此
的范围。
您必须将其声明为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);
}
}
}
class-MyClass
{
//如果MyClass是密封的或静态的,则将protected更改为private。
//如果您需要从MyClass外部访问它,请将其更改为public。
受保护列表列表2=新列表();
公共void DoThis(字符串项)
{
if(//somethis)
{
///还有代码吗
清单2.添加(sk);
}
}
}
您的逻辑或数据存储有问题您希望实现什么?我不明白,为什么总是创建新的SecondClass
?需要澄清你的问题:这不应该是SecondClass
的一部分,而不是MyClass
?太好了,希望我们能帮上忙;)弗苏尔告诉我的事情很有帮助,但我也不得不把我的清单放在我的方法之外。非常感谢。