有没有办法以简短的方式清除所有列表项而不是使用List.Clear();他们每个人的方法?因为当我第一次点击我的按钮时,我在列表中存储了一些项目,当我第二次单击我的按钮时,它会想要获取新项目,但它仍然保留旧项目而不是新项目......我认为清除所有列表在点击按钮后立即开始在我的列表中存储项目将帮助我解决这个问题...
我有以下课程:
Fruits
vegetables
cars
Homes
.
.
.
答案 0 :(得分:2)
问题的解决方案就是首先没有列表。
不是让这些静态方法成为void
并将结果粘贴在每次调用时需要清除的静态列表中,而应该返回它们的值,如下所示:
public static List<string> GetFruits()
{
var list = new List<string>();
OracleConnection conn1 = MyConnection.GetSourceConnection();
conn1.Open();
using (OracleCommand storeFruits = new OracleCommand("MyCOMMAND", conn1))
{
using (OracleDataReader reader = storeFruits.ExecuteReader())
{
while (reader.Read())
{
list.Add((string)reader["TABLE_NAME"]);
}
}
}
return list;
}
这有许多优点:
您可以同时调用该方法而不用担心,因为每个调用者都有自己的列表。
永远不用担心清除列表。你每次都重新开始。
不用担心一个调用者正在使用的列表被其他位置的某些其他调用修改。每个来电者只需要担心他们的代码,而不是其他人的代码。
答案 1 :(得分:0)
如果它们都是私人列表,您将无法从其他类别中看到它们
即使你制作了public static
,你仍然需要这样做:
Class1.myLIST1.Clear();
Class2.myLIST2.Clear();
// etc