如何从列表中删除第一个元素并保留索引信息?

5

我有一个列表,希望去掉第一个元素,但保持下一个的索引不变。例如:

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

你可能需要使用 Dictionary<Int32, String> 来完成这个任务,并且移除键。 - Mike Christensen
顺便说一句:您真的没有包含返回您展示结果的相关代码。 - JohnFx
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"

2

将索引为0的项目设置为null,或者其他值以表明已被删除。显然对于值类型(即int)这可能不是可行的选项。这也将导致Count包括所有空值,这可能是有利的,也可能不是。


1

使用数组而不是列表。这将允许您删除特定索引处的项目,而不会破坏索引本身。


0

C#中的列表与JavaScript数组不同,您无法删除一个项目并在其位置留下undefined

您需要用一个可以忽略的占位符替换您的值。例如:

Fruit[0] = "ignore";

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接