1

我有 2 个通用列表。

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

项目包含 4 个元素。

它们是 1. 商品代码 2. 描述 3. BIN 4. 价格

但是它们只是按顺序输入 例如

Item={5858545, 吹风机, A45, 50}

有很多 Item 并且 Item 2 包含 Items 的列表。例如 Item2= {{5858545, HairDryer, A45, 50},....}

现在我想根据 BIN 然后按项目代码对 Item2 进行排序

所以现在我的列表 Item2 将包含根据 BIN 然后按项目代码排序的 Item 元素。

如何使用 LINQ 或任何其他方式做到这一点?

谢谢

4

1 回答 1

4

您不应该将对象存储为数组或值列表。创建一个新类来表示您的项目。为其提供 BIN、名称等四个属性,然后创建该自定义类型的列表。

要排序列表,您可以使用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 回答