c# - 将 ArrayList 的元素移动到前面,同时保持顺序 C#

标签 c# arrays arraylist

假设我有一个这样的数组,

The, Quick, Brown, Fox, Jumps 

我需要将其中一个元素移动/移动到前面,所以它看起来像这样

Brown, Fox, Jumps, The, Quick

如何像旋转门一样对数组进行排序?通过移动一个元素并让其余元素跟在后面?

有没有简单的方法或者我应该复制/循环/切片/复制?

最佳答案

试试下面的方法

public void ShiftRevolvingDoor(ArrayList list, int count) {
  while ( count > 0 ) {
    ShiftRevolvingDoor(list);
    count--;
  }
}

public void ShiftRevolvingDoor(ArrayList list) {
  if ( list.Count < 2 ) {
    return;
  }
  int lastIndex = list.Count - 1;
  object first = list[0];
  for ( i = 0; i < lastIndex; i++) {
    list[i] = list[i+1];
  }
  list[lastIndex] = first;
}

关于c# - 将 ArrayList 的元素移动到前面,同时保持顺序 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3645339/

相关文章:

Python - tkinter 小部件数组随着单选按钮的点击而变化

javascript - 在 JavaScript 中使用 for 循环创建对象数组

java - 移动随机矩阵8*8

java - 通过 ArrayList 的反向迭代给出 IndexOutOfBoundsException

Java:无法将 int 添加到数组列表

c# - MongoDB:如何在 C# 中使用嵌套数组加载集合?

c# - 为什么 WCF 在遇到 302 响应时无法调用 SOAP 服务?

java - 将 Java 中的数组拆分为更小数组的最佳方法?

c# - 我如何优化此 linq 函数以计算 "OrePreviste"的总和?

c# - 模块类型加载异常 : Failed to load type for module