リストを指定された特定の数だけ右に回転しようとしています。配列(またはリスト)の回転は円として見ることができると考えられます。つまり、終わりから落ちる要素は先頭に折り返され、その逆も同様です。その良い例は、配列やリストを持っていて、それを3桁右に回転した場合、結果は次のようになります:C#、指定された場所でリストを右に回転
初期配列(またはリスト):20,30,40 、50、60、70 3ヶ所で右に回転し
:50、60、70、20、30、40
私は少しは私が理解して何のもと、ダウンいくつかのコードを書いていますこのコンセプト。私は知っている、それは私がそれをよりよく理解するのに役立つので、これを手動で(正しいコードやLINQの任意の並べ替えなし)を行う正しい方法は何ですか。
私はこの問題を解決する手作業を求めています。何も想像できません。ここで
public void Test8(List<int> items, int places)
{
int[] copy = new int[items.Count];
items.CopyTo(copy, 0);
for (int i = 0; i < items.Count; i++)
{
int RotateRight = (i + places) % items.Count;
items[i] = copy[RotateRight];
}
}
を持つ別のアプローチは、私はあなたが投稿するものには空想のコードを参照してくださいません。上記のほとんどは、CまたはC++で記述することができます。 – user3185569