List内に一致する要素があれば、その要素だけを先頭へ移動させて、 その他の要素は元のままになるように並べ替える方法です。 Remove() Remove()を実行して、一致する要素があったかどうかを事後確認し、 要素があった場合はindex0へInsert()します。 var list = new List<string>() { "A", "B", "C", "D", "E" }; if (list.Remove("C")) { list.Insert(0, "C"); } foreach (var item in list) Console.WriteLine(item); IndexOf() IndexOf() を実行して、一致する要素があればRemoveAt()で削除し、 その後index0へInsert()します。 返り値が0の場合は既に希望の並びになっているので何もしません。
![C# List<T>特定の要素を先頭へ移動させる - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/7bb80411f7a11c7709b99e46824133bc73bfd1fd/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9QyUyMyUyMExpc3QlM0NUJTNFJUU3JTg5JUI5JUU1JUFFJTlBJUUzJTgxJUFFJUU4JUE2JTgxJUU3JUI0JUEwJUUzJTgyJTkyJUU1JTg1JTg4JUU5JUEwJUFEJUUzJTgxJUI4JUU3JUE3JUJCJUU1JThCJTk1JUUzJTgxJTk1JUUzJTgxJTlCJUUzJTgyJThCJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1kYjgyZDM5MThmNzYyMDEyYzA1NjFhZmRiODYzNjQ0Mw%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTcxNiZ0eHQ9JTQwaGlsbGFja2VuJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzImdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0zYmMyODJiOTRhYTI5NzNmMDc3MDQwZGM0YzQyZjQ2Ng%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D3f5c5d08f71cc6288d3f62ae18e2f3ff)