例如:
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
的问候,
答案 0 :(得分:1)
我喜欢使用LINQ' OrderBy
和ThenBy
来订购对象集合。您只需传入一个选择器函数来用于订购集合。例如:
orderedObjs = objs.OrderByDescending(function(x) x.isPrimary).ThenBy(function(x) x.id).ToList()
此代码首先按.isPrimary
布尔值,然后按id
对集合进行排序。最后,它立即将查询评估为List并将其分配给某个变量。
答案 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数组。