配列を利用する(文字列型、ソート)

文字列型を要素とする配列を使うサンプルを示します。

起動時に文字型配列に要素として人の名前を設定します。ふたつのボタンで、昇順、降順にソートします。

配列の要素をソートするには下記のコードを使います。

// A to Z.
// 昇順にソートする.
Data000.sort( by: { $0 < $1 } )

// Z to A.
// 降順にソートする.
Data000.sort( by: { $0 > $1 } )

降順ソートを例にして下記のようにもかけます。( 脳が混乱するのでおすすめできませんが )

// Z to A.
// 降順にソートする(こちらの書き方のほうがおすすめ).
Data000.sort( by: { $0 > $1 } )

// Z to A.
// 降順にソートする(こう書いてもいいけれど、おすすめできない).
Data000.sort( by: { $1 < $0 } )

では、以上をふまえて実際のコードを簡単に説明します。

8行目に文字列型の配列を宣言しています。
63 〜 73行目で配列に要素をいれています。これが初期状態になります。
19 〜 26行目で Text を配列の要素数ぶんループさせて、その内容を表示しています。
34、44行目で配列をソートしています。

import SwiftUI

struct ContentView: View {

    let NUM_LOOP = 4

    // 配列を宣言する.
    @State var Data000 = [String]()
    //@State var Data000: [Int] = [] // このような表記法でもよい.

    var body: some View {


        VStack {

            Spacer()

            // データの要素個数ぶんループして Text を表示する.
            ForEach ( 0 ..< Data000.count, id: \.self ) { n in

                let str = String( format: "[%d]: %@", n, Data000[n] )
                Text( str )
                    .font( .system( size: 16.0 ) )
                    .frame( maxWidth: .infinity, alignment: .leading )

            }

            Spacer()

            HStack {

                // AからZにソートするボタン.
                Button( action: {
                    Data000.sort( by: { $0 < $1 } )
                }){
                    Text( "Sort A to Z" )
                        .foregroundColor( .white )
                }
                .padding()
                .background( .blue )

                // ZからAにソートするボタン.
                Button( action: {
                    Data000.sort( by: { $0 > $1 } )
                }){
                    Text( "Sort Z to A" )
                        .foregroundColor( .white )
                }
                .padding()
                .background( .blue )

            }

            Spacer()

        }
        .onAppear()
        {

            // 念のため全要素を削除する.
            Data000.removeAll()

            // 要素を追加する.
            Data000.append( "Art Pepper" ) // 1925 year of birth.
            Data000.append( "Bill Evans" ) // 1929.
            Data000.append( "Charles Mingus" ) // 1922.
            Data000.append( "Dexter Gordon" ) // 1923.
            Data000.append( "Eric Dolphy" ) // 1928.
            Data000.append( "Freddie Hubbard" ) // 1938.
            Data000.append( "Gil Evans" ) // 1912.
            Data000.append( "Hank Mobley" ) // 1930.
            Data000.append( "Ike Quebec" ) // 1918.
            Data000.append( "John Coltrane" ) // 1926.

        }


    }

}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}