我想知道如何删除数组中的项目。
string[] drinks = { "Water", "Juice", "Beer" };
我想删除“啤酒”;我怎么能这样做?
答案 0 :(得分:3)
数组具有固定大小,因此您无法真正“删除”某个项目。您可以将其替换为null,但随后您的数组将具有一个empy“单元格”。或者您可以创建一个不包含该项的新数组实例,如Sameer的回答所示。
如果您需要能够添加或删除项目,则应使用列表(例如List<T>
)而不是数组。
List<string> drinks = new List<string> { "Water", "Juice", "Beer" };
...
drinks.Remove("Water");
答案 1 :(得分:2)
drinks = drinks.Where(w => w != "Beer").ToArray();
答案 2 :(得分:0)
您可以考虑使用HashSet<string>
而不是数组来保存此数据。与列表和数组的O(N)相比,Hashset<>
具有O(1)复杂度添加和删除操作。
这在很大程度上取决于您的预期用途,但它可能会更好。这可能是完全矫枉过正 - 你的里程可能会有所不同。 :)
代码如下所示:
var drinks = new HashSet<string>
{
"Water",
"Juice",
"Beer"
};
drinks.Remove("Beer");
如果您想为每种饮品存储一个值,则可以使用Dictionary<>
代替。例如:
var drinks = new Dictionary<string, int>();
drinks["Water"] = 100;
drinks["Juice"] = 200;
drinks["Beer"] = 300;
Console.WriteLine("Value of beer is " + drinks["Beer"]);
drinks.Remove("Beer");
此示例使用饮品名称存储int
值,但您可以使用您喜欢的任何类型。