特定の番号をこのリストの先頭に移動したいとします。リストの要素をリストの先頭に移動する
int numberToBeMovedOnTop = 4;
List<int> lst = new List<int>(){1, 2, 3, 4, 5, 5, 4, 7, 9, 4, 2, 1};
List<int> lstOdd = lst.FindAll(l => l == numberToBeMovedOnTop);
lstOdd.AddRange(lst.FindAll(l => l != numberToBeMovedOnTop));
numberToBeMovedOnTop
は変数である。
これは私に望ましい結果をもたらしますが、これに対するより良い解決策ですか?リストを一度反復して、最初の出現をnumberToBeMovedOnTop
、最初の出現を2回目の出現をnumberToBeMovedOnTop
と2番目の要素などと交換することができます。しかし、リストを2度反復することなく、組み込みのC#関数を使ってこれを行うことはできますか?
これを行うためのさまざまな方法の負荷が含まれているhttp://stackoverflow.com/questions/1668451/use-linq-to-move-item-to-top-of-list –