在C#中,如何通过指定数量的位置将列表旋转到右侧

  • 本文关键字:位置 列表 旋转 何通过 c#
  • 更新时间 :
  • 英文 :


我尝试编程一个测试,其中我有两个参数,一个称为项目的int列表和一个称为loces的单个int,我将在其中旋转列表通过指定的位置数量。

这是我到目前为止尝试的。

 public void Test8(List<int> items, int places)
    {
        int a = 0;
        if (a < items.Count)
        {
            a = a % items.Count;
        }
        int[] result = new int[items.Count];
        for (int i = 0; i < a; i++)
        {
            result[i] = items[items.Count - a + i];
        }
        int j = 0;
        for (int i = a; i < items.Count; i++)
        {
            result[i] = items[j];
            j++;
        }

您可以使用linq做到这一点:

IEnumerable<T> RotateLeft<T>(IEnumerable<T> list, int places)
{
    return list.Skip(places).Concat(list.Take(places));
}
IEnumerable<T> RotateRight<T>(IEnumerable<T> list, int places)
{
    return RotateLeft(list, list.Count() - places);
}

相关内容

  • 没有找到相关文章