如何在C#中替换列表中的值?

时间:2015-07-14 09:51:45

标签: c# list

我有一个清单:

List<string> strlist=new List<string>();
strlist.add("UK");
strlist.add("US");
strlist.add("India");
strlist.add("Australia");

我想更改列表中某些元素的索引:

&#34; US&#34;的当前指数是1,我想用3替换它和&#34;澳大利亚&#34;它应该是1。

4 个答案:

答案 0 :(得分:2)

如果你已经知道指数,你可以使用&#39; swap&#39;它们:

var temp = strlist[1];
strlist[1] = strlist[3];
strlist[3] = temp;

答案 1 :(得分:2)

在我看来,你真的只想对列表进行排序。

如果是这样,请执行以下操作:

strlist.Sort().

这适用于简单的字符串列表,因为string定义了Sort()可以使用的合适的比较运算符。

如果您想将“UK”保留在列表的开头并对列表的其余部分进行排序,您可以这样做:

strlist.Sort(1, strlist.Count-1, null);

以上行将导致列表为:

UK
Australia
India
US

答案 2 :(得分:0)

试试这个:

使用交换变量

String app = strlist[1];
strlist[1] = strlist[3];
strlist[3] = app;

答案 3 :(得分:0)

List<string>可以使用list[index] = ...编入索引。如果您想手动更换项目。否则(我猜),如果您需要按字母顺序对列表进行排序,但将“UK”留在顶部则需要进行排序:

var list = new List<string> {"UK", "US", "India", "Australia" };
list.Sort((a, b) =>
{
    if (a == "UK")
        return -1;

    if (b == "UK")
        return 1;

    return string.Compare(a, b, StringComparison.CurrentCulture);
});