1

私は2つの一般的なリストを持っています。

  Dim Item As New List(Of String)
  Dim Item2 As New List(Of Array)

アイテムには 4 つの要素が含まれています。

1. 商品コード 2. 説明 3. BIN 4. 価格

しかし、それらは順番に入力されているだけですたとえば

アイテム={5858545, ドライヤー, A45, 50}

多くのアイテムがあり、アイテム 2 にはアイテムのリストが含まれています。たとえば、Item2= {{5858545, ヘアドライヤー, A45, 50},....}

今、BINに従ってItem2を並べ替え、次にItemコードで並べ替えたい

これで、私のリスト Item2 には、BIN に従って並べ替えられた Item の要素が含まれ、次に Item コードによって並べ替えられます。

LINQ またはその他の方法でこれを行う方法は?

ありがとう

4

1 に答える 1

4

オブジェクトを配列または値のリストとして保存しないでください。アイテムを表す新しいクラスを作成します。BIN、名前などの 4 つのプロパティを指定し、そのカスタム タイプのリストを作成します。

リストを並べ替えるには、 メソッドを使用しOrderBy、その後に メソッドを使用しますThenBy。カスタム オブジェクトを使用すると、次のように読みやすくなります。

list.OrderBy(item => item.BIN).ThenBy(item => item.Code);

配列/リストがある場合に必要な、はるかに醜いオプションの代わりに:

list.OrderBy(item => item[0]).ThenBy(item => item[1]);

最初の例が要件とまったく同じであることに注意してください。「リストを BIN 順、次にコード順に並べます。」初めてコードを見た人には、コードが何をしているのかが完全に明らかです

于 2013-02-12T14:57:32.660 に答える