【问题标题】:Change items position in List<string>更改 List<string> 中的项目位置
【发布时间】:2014-06-06 20:23:03
【问题描述】:

我有一个包含 3 个项目的列表

reg.ToList()    Count = 3   System.Collections.Generic.List<string>
[0] "Text0" string
[1] "Text1" string
[2] "Text2" string

我想改变所有物品的位置,第一个位置而不是最后一个,其余的物品都站在一个位置

对于这个例子

[0] "Text1" string
[1] "Text2" string
[2] "Text0" string

【问题讨论】:

    标签: c# asp.net .net list


    【解决方案1】:

    在获得第一个项目后立即使用RemoveAt 方法,然后将其添加回来。

    var item = list[0];
    list.RemoveAt(0);
    list.Add(item);
    

    RemoveAt 将比Remove 更高效,因为它不会尝试搜索您的列表并不必要地比较值。

    【讨论】:

    • +1 很高兴知道 RemoveAt 在指定索引处删除;编辑,肯定是带有比较说明的 +1
    • @Schuere,很高兴知道您可以依赖MSDN documentation :-)
    • @Elgonzo,有时我确实发现 SO 比一些文档更有帮助 :-)
    • @Schuere,实际上,我必须全心全意地同意你的观点:-D
    【解决方案2】:

    您可以删除并重新添加列表中的第一项。这样你的值将在列表的末尾

    var item = reg[0];
    reg.Remove(item); //Removes the specific item
    reg.Add(item); //add's an item to the end of the list
    

    这也适用于更大的列表,并且索引会相应改变

    编辑:Crono 的解决方案会比我的更快:s

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-19
      • 1970-01-01
      相关资源
      最近更新 更多