1

私はenum

 public enum Fruits
    {
       Apple = 14,
       Lemon = 174,
       Grapes = 200,
       Peach = 1
    }

そしてこれによるリストenum

IEnumerable<Fruits> Fruits = new List<Fruits>();

デフォルトでは、それを呼び出すgetValuesenum、エントリがIDでソートされます。UIにドロップダウンとしてリストを表示し、リストのメンバーを特定の順序で並べ替えたいと思います。私のサンプルLemonでは、​​リストの最初のアイテムになりたいです。

私は次のようなものでレモンエントリでアイテムを注文しようとしました:

Fruits.OrderBy(f => f.Lemon);

しかし、私はf.Lemonこの文脈でこれを行うことを許可されていません。たぶんforeach、リストでレモンアイテムを削除して、最初のエントリとして挿入することができます。

私はプログラミングにまったく慣れておらず、似たような質問をいくつか見つけましたが、enumタイプについては知りません。

4

1 に答える 1

4

OrderByDescending+を使用できますThenBy

fruits.OrderByDescending(f => f == Fruits.Lemon)
      .ThenBy(f => f);

変数の名前は列挙型とは異なる必要があることに注意してください(小文字を使用しましたfruits)。

名前で2番目に注文する場合:

      .ThenBy(f => f.ToString());

f == Fruits.Lemon注文できるboolを返します。SQLに似ていますCASE

ORDER BY CASE WHEN Fruit = 'Lemon' THEN 1 ELSE 0 END DESC, FRUIT ASC
于 2012-10-10T13:21:14.050 に答える