我一直在研究这个主题,并得到了矛盾的答案。任何帮助表示赞赏。 对于一项作业,我被指示创建一个数组结构。我试图在一种情况下删除条目,而在另一种情况下更改。这应该是由字段之一而不是索引号决定的。
var countOfEmployees = 0;
var employees = new EmployeeData[100];
Console.Write("Please enter employee you want to delete:");
string deleteEmployee = Console.ReadLine();
bool deleted = false;
for (int x = 0; x < countOfemployees; x++)
{
if (items[x].ItemNumber == deleteItemNumber)
{
deleted = true;
}
if (true)
{
//code goes here
}
感谢您的帮助!
答案 0 :(得分:0)
在数组中,您也许可以从占位符中删除该值,但是如果不做一些工作,便无法删除实际的项。
基本上,您可以做的是:找到要搜索的值,然后将其替换为null并在其他所有函数中相应地对待它。
选项2是删除项目,然后使用一个函数,将具有较高索引的所有值向上“移位”。
选项3是使用C#/。NET必须提供的与集合有关的高级功能,创建一个List,删除该项目并将其转换回数组。
var employees = new EmployeeData[100];
var list = employees.ToList();
int index=-1;
//search through in a loop (won't write it here)...
index = x; //get the index in your list then break the loop
break; //end the loop
list.RemoveAt(index); //delete the spot outside the loop
employees=list.ToArray();
当然,如果搜索没有找到任何内容,则需要进行检查,但是我认为您可以在没有我帮助的情况下实现这一点。 当然,这是我假设数组中只有一个条目具有这种值的情况。 如果不是这样,您将不得不遍历并擦除它们,直到搜索不再找到任何东西为止。