で、私は今、私は最初のID 1085にして、いくつかの要素を移動したいオブジェクト移動項目が最初の配列
MyObjects[] mos = GetMyObjectsArray();
の配列を持っているので、私はLINQでこのようなコードを記述し、よりエレガントな方法がありますこれを行う?
mos.Where(c => c.ID == 1085).Take(1).Concat(mos.Where(c => c.ID != 1085)).ToArray();
注意が、私は最初の項目でswaping、他の項目の位置を保存することはそれはLINQではありませんソリューション
をしてみましょうアイテム:
は、その後、あなたは(あなたの例から変更)MoveToFront拡張メソッドを使用することができます'あなたが望むのは' x 'の場所です。この「空の」アイテムはどうすればいいですか?折りたたむか、スワップする? – abatishchev
あなたのコードには、a)新しい配列の作成b)重複した '1085'の削除など、追加のプロパティがあります。 c)そのような項目が存在しない場合は投げない。これらは正確に複製する必要がありますか? – Ani
他のアイテムの配置を保存したいので、最初のアイテムとのスワップは解決策ではありません –