如何在c#中替换列表中的值

本文关键字:列表 替换 | 更新日期: 2023-09-27 18:02:30

我有一个列表:

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

我想改变列表中一些元素的索引:

当前US的索引是1,我想把它替换为3,Australia的索引应该是1

如何在c#中替换列表中的值

如果您已经知道索引,您可以使用'swap'它们:

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

在我看来,您实际上只是想对列表进行排序。

如果是,就这样做:

strlist.Sort().

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

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

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

上面一行将导致列表为:

UK
Australia
India
US

试试这个:

使用交换变量

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

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);
});