私はこのような2つの配列を持っています:
name(0)="jack"
name(1)="nicho"
name(2)="Han"
name(3)="Hugo"
Value(0)="70"
Value(1)="60"
Value(2)="30"
Value(3)="90"
「値」でソートされた位置の結果に基づいて「名前」をソートする方法
私が望む結果:
Value(0)="90"
Value(1)="70"
Value(2)="60"
Value(3)="30"
name(0)="Hugo"
name(1)="jack"
name(2)="nicho"
name(3)="Han"
辞書を使用する場合、2つの別々の配列よりもはるかに簡単です
Dim val As New Dictionary(Of String, String)
val.Add("jack", 70)
val.Add("nicho", 60)
val.Add("Han", 30)
val.Add("Hugo", 90)
以下のように並べ替えることができます
Dim sorted = From item In val Order By item.Value Descending Select item
並べ替えを配列に追加する場合
Dim arrName(), arrValue() As String
Dim k As Integer = 0
ReDim Preserve arrName(sorted.Count - 1)
ReDim Preserve arrValue(sorted.Count - 1)
For Each it In sorted
arrName(k) = it.Key
arrValue(k) = it.Value
k = k + 1
Next
または
あなたはこのようにすることができます
Dim name() As String = {"jack", "nicho", "Han", "Hugo"}
Dim value() As String = {"70", "60", "30", "90"}
Dim j As Integer = 0
Dim new_value = From val1 In value Order By val1 Descending Select val1
Dim new_name() As String
Dim idx As Integer
ReDim Preserve new_name(new_value.Count - 1)
For Each itm In new_value
idx = Array.IndexOf(value, itm)
new_name(j) = name(idx)
j = j + 1
Next
これは、の2つの新しいアレイを作成しますvalue
とname
、ご希望のソート順とを
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加