如何从列表中删除第一项并保持索引

时间:2012-08-10 16:57:32

标签: c#

我有一个列表,想要删除第一个项目,同时保持下一个项目的索引相同。例如:

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

4 个答案:

答案 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)

使用数组而不是列表。这将允许您删除某些索引处的项目,而不会弄乱索引本身。