sort 2d Array重新排序第一列

时间:2015-07-13 16:48:15

标签: arrays vb.net sorting

例如:

Array
ID | Primary | Data2
------------------
1  | N       | Something 1
2  | N       | Something 2
3  | Y       | Something 3

我正在尝试根据主列对其进行排序,我希望首先显示“Y”。它应该将所有其他列放在顶部。

最终结果将是:

Sorted Array
ID | Primary | Data2
------------------
3  | Y       | Something 3
1  | N       | Something 1
2  | N       | Something 2

是否有预制功能。如果没有,我们该怎么做?

声明如下:

Dim Array(,) As String

的问候,

2 个答案:

答案 0 :(得分:1)

我喜欢使用LINQ' OrderByThenBy来订购对象集合。您只需传入一个选择器函数来用于订购集合。例如:

orderedObjs = objs.OrderByDescending(function(x) x.isPrimary).ThenBy(function(x) x.id).ToList()

此代码首先按.isPrimary布尔值,然后按id对集合进行排序。最后,它立即将查询评估为List并将其分配给某个变量。

Demo

答案 1 :(得分:0)

有一个类似的C# question,其解决方案同样适用于VB。简而言之,如果您首先将2D数组拆分为单独的(1D)数组,则可以使用Array.Sort Dim Primary() As String Dim Data2() As String // ... Array.Sort(Primary,Data2)

Data2

这将根据Primary的Y / N排序重新排序{{1}},之后您可以将它们重新组合成2D数组。