1. ホーム
  2. c#

[解決済み] C#でIListをソートする

2023-03-04 12:28:20

質問

今日、面白い問題に出くわしました。IListを返すWCF Webサービスを持っています。私がそれを並べ替えたいと思うまでは、実際には大したことではありません。

IListインターフェースにはソートメソッドが組み込まれていないことが判明しました。

結局、私は ArrayList.Adapter(list).Sort(new MyComparer()) メソッドを使用して問題を解決しましたが、それは私には少しquot;ghetto"に思えました。

私は、拡張メソッドを書くことと、IList を継承して独自の Sort() メソッドを実装すること、および List にキャストすることを試しましたが、これらのどれも過度にエレガントではないように思えました。

そこで私の質問は、誰かが IList をソートするためのエレガントなソリューションを持っているかということです。

どのように解決するのですか?

LINQ To Objectsを使ってソートするのはどうでしょうか?

例えば IList<Car> があり、その車には Engine のプロパティがあれば、以下のようにソートできたと思います。

from c in list
orderby c.Engine
select c;

編集:ここで答えを得るには、迅速さが必要です。私は他の回答とは少し異なる構文を提示したので、私の回答を残します - しかし、提示された他の回答も同様に有効です。