我正在尝试从已定义结构的数组中添加/删除数据。
struct process
{
public int Proc_Id;
public int Proc_BurstTime;
public int Proc_Priority;
public override string ToString()
{
return "ID: " + Proc_Id.ToString() + " Time: " + Proc_BurstTime.ToString() + " Prior: " + Proc_Priority.ToString();
}
};
readonly process[] ProcessList = new process[]
{
new process{ Proc_Id = 1, Proc_BurstTime = 3000, Proc_Priority = 1},
new process{ Proc_Id = 2, Proc_BurstTime = 5000, Proc_Priority = 2},
new process{ Proc_Id = 3, Proc_BurstTime = 1000, Proc_Priority = 3},
new process{ Proc_Id = 4, Proc_BurstTime = 10000, Proc_Priority = 4}
};
我看到它是只读的(根据一些谷歌搜索,我没有其他选择。 我可以修改数据,但如何将数据添加到 ProcessList 中?我尝试过 ProcessList.Add(~),但不起作用。
基本上,我真正想做的是将这个结构数组填充到 ListBox 控件中。我最初能够使用数据源填充它,我还能够修改内容并“重新数据源”它以更新列表框。但是,我无法添加或删除进程。有谁知道我能做什么?
最佳答案
您需要使用集合。
一个List<T>
就可以了。
var processes = new List<process>();
processes.Add(new process
{
Proc_Id = 1,
Proc_BurstTime = 3000,
Proc_Priority = 1
});
稍微修改一下你的代码就会得到下面的结果。
List<process> ProcessList = new List<process>()
{
new process {Proc_Id = 1, Proc_BurstTime = 3000, Proc_Priority = 1},
new process {Proc_Id = 2, Proc_BurstTime = 5000, Proc_Priority = 2},
new process {Proc_Id = 3, Proc_BurstTime = 1000, Proc_Priority = 3},
new process {Proc_Id = 4, Proc_BurstTime = 10000, Proc_Priority = 4}
};
此集合类型还具有 Add
您在问题中提到的方法。
关于c# - 将数据添加到结构体数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18949753/