如何在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
如果您已经知道索引,您可以使用'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);
});