我有一个列表,想要删除第一个项目,同时保持下一个项目的索引相同。例如:
public List<string> Fruit
{
get
{
List<string> fruits = dataSource.GetFruits();
return messageStatuses ;
}
}
结果返回
[0] -- apple
[1] -- grape
[2] -- orange
[3] -- peach
删除第一项时,结果应为:
[1] -- grape
[2] -- orange
[3] -- peach
答案 0 :(得分:7)
您可以使用字典
Dictionary<int,string> dic = new Dictionary<int,string>();
dic.Add(0,"Apple");
dic.Add(1,"Grape");
dic.Add(2,"Orange");
dic.Add(3,"Peach");
dic.Remove(0);
现在
dic[1]
会给你苹果
答案 1 :(得分:2)
只需将索引0处的项目设置为null
,或者将其他值设置为表示已将其删除。显然,对于价值类型(即int
),这可能不是一个可行的选择。它还会导致Count
包含所有空值,这可能是也可能不是。
答案 2 :(得分:0)
C#中的列表功能不像JavaScript数组,您可以在其中删除项目并将undefined
留在其中。
您需要使用可忽略的占位符替换您的值。像
这样的东西Fruit[0] = "ignore";
然后在你的循环中处理它。
答案 3 :(得分:0)
使用数组而不是列表。这将允许您删除某些索引处的项目,而不会弄乱索引本身。