4

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

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

4 回答 4

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]会给你"Grape"

于 2012-08-10T17:02:07.467 回答
2

只需将索引 0 处的项目设置为null或其他值以指示它已被删除。显然,对于值类型(即int),这可能不是一个可行的选择。它还将导致Count包含所有空值,这可能是可取的,也可能不是可取的。

于 2012-08-10T17:59:57.083 回答
1

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

于 2012-08-10T17:00:32.393 回答
0

C# 中的列表不像 JavaScript 数组那样运行,您可以在其中删除一个项目并留undefined在原处。

您需要用可以忽略的占位符替换您的值。就像是

Fruit[0] = "ignore";

然后在你的循环中处理它。

于 2012-08-10T16:59:54.587 回答