我有一个清单:
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。
答案 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);
});