> For the complete documentation index, see [llms.txt](https://kurohasu.gitbook.io/fsharpabout/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kurohasu.gitbook.io/fsharpabout/basic/collection.md).

# 配列とコレクション

### 配列とは

配列は同じデータ型が並んでいるもので、F#には1次元、2次元、3次元、4次元がサポートされています宣言(全て０)をするにはArray○d.zeroCreateを使用します\
配列にアクセスするには\[]を使用します

```fsharp
// 1次元の構文:let <配列名>=Array.zeroCreate 要素数
let A=Array.zeroCreate 4
//A[0],A[1],A[2],A[3]が作成される

//2次元の構文:let <配列名>=Array2D.zeroCreate 要素数1 要素数2
let B=Array2D.zeroCreate 2 3
//B[0,0],B[0,1],
//B[1,0],B[1,1],
//B[2,0],B[2,1],が作成される

//3次元の構文:let <配列名>=Array3D.zeroCreate 要素数1 要素数2 要素数3
//4次元の構文:let <配列名>=Array4D.zeroCreate 要素数1 要素数2 要素数3 要素数4


//2次元配列(B[2,1])にアクセスする
let B21=B[2,1] 
```

### 配列の型

配列のデータ型は下記の通りです\
配列を引数/戻り値とする場合はこれを使用します

| 種類         | 意味     |
| ---------- | ------ |
| データ型\[]    | 1次元の配列 |
| データ型\[,]   | 2次元の配列 |
| データ型\[,,]  | 3次元の配列 |
| データ型\[,,,] | 4次元の配列 |

配列だけでなく以下のコレクション型がサポートされています

<table><thead><tr><th>種類</th><th>意味</th><th data-hidden>意味</th><th data-hidden></th></tr></thead><tbody><tr><td>array</td><td>配列(変更できる値の集合)</td><td></td><td></td></tr><tr><td>list</td><td>リスト(変更できない値の集合)</td><td></td><td></td></tr><tr><td>seq</td><td>シーケンス(順序付けられた値の集合)</td><td></td><td></td></tr><tr><td>map</td><td>辞書(値とキーによる集合)</td><td></td><td></td></tr><tr><td>set</td><td>二分木による値の集合体</td><td></td><td></td></tr></tbody></table>

```fsharp
//1 1~10が格納されている配列「x1」,リスト「x2」,シーケンス「x3」
let x1=[|1;2;3;4;5;6;7;8;9;10|]
let x2=[1;2;3;4;5;6;7;8;9;10]
let x3=seq{for i in 1..10-> i}

//スキップ演算を使用できます
//構文: 初期値..増分..終値

//2 10,20..90,100が格納されている配列「xa」,リスト「xb」,シーケンス「xc」
let xa=[|10..10..100|]
let xb=[10..10..100]
let xb=seq{10..10..100}
```

{% hint style="info" %}
コレクション型<データ型>　と記述すると要素の型を指定することができます\
(例 array\<int> →int型配列)
{% endhint %}

次ページでは配列を使った機能を紹介します
