我编写了一些代码,以便向我的public static List<Tuple<TasksTypes, string>>() TasksToDo
添加对象,但是当我尝试Append()
时,列表什么都没有发生-尽管在debuagger中该方法被调用,但它保持不变没有例外。这是我的相关代码:
public class GetRefreshInfo : IDisposable
{
public enum TasksTypes
{
GetOneTable,
GetAllBySpecial,
}
private static List<Tuple<TasksTypes, string>> TasksToDo = null;
public double RefreshFreq { get; set; } = 300;
public GetRefreshInfo(double RefreshFreqPar = 300)
{
//<summary>Object Constructor</summary>
RefreshFreq = RefreshFreqPar;
_Results = new Dictionary<Tuple<TasksTypes, string>, object>();
TasksToDo = new List<Tuple<TasksTypes, string>>();
}
public void AddTask(TasksTypes type, string Insructions)
{
//<summary>Adds task to thread execution</summary>
TasksToDo.Append<Tuple<TasksTypes, string>>(new Tuple<TasksTypes, string>(type, Insructions));
}
}
代码执行得很好,没有异常,但没有任何追加, 谢谢。
答案 0 :(得分:7)
List<T>
不包含Append
方法。您正在使用Enumerable<T>.Append
,因此该行实际上根本不执行任何操作。
您将不得不存储操作的结果(这意味着每次调用该方法时都要枚举并重新创建整个列表):
TasksToDo = TasksToDo
.Append<Tuple<TasksTypes, string>>(new Tuple<TasksTypes, string>(type, Insructions))
.ToList();
或者更好的是,使用List<T>.Add
:
TasksToDo.Add(new Tuple<TasksTypes, string>(type, Insructions));