配列の操作

集合

配列の操作

System.Arrayクラス

Array クラス (System)
配列の作成、操作、検索、および並べ替えを行うメソッドを提供します。これにより、共通言語ランタイムのすべての配列の基本クラスとして機能します。
配列に関するメソッド群がSystem.Arrayクラスで提供されています。

配列の作成、操作、検索、並べ替え、などなど。

以下のコードはそのうちのいくつかです。こんなのが沢山あります。
int[] array1 = { 3,5,1,4,10,8,2,5,10};

// コピー(コピー元のインデックス2の場所からコピー先のインデックス0位置から3要素分)

int[] destArray = new int[3];
Array.Copy(array1,2,destArray,0,3); // destArray:1,4,10

// 逆順に並び替え
int[] array2 = { 1,2,3,4,5};
Array.Reverse(array2); // 5,4,3,2,1

デリゲート

こういうパターンも結構あります。
int[] array = { 3,5,1,4,10,8,2,5,10};

// 最初に見つけた偶数
int even = Array.Find(array, i => (i %2 == 0)); // 4
// 配列中のすべての偶数
int[] evenArray = Array.FindAll(array, i => (i % 2 == 0)); // 4,10,8,2,10

スレッドセーフ

配列はスレッドアンセーフです。
マルチスレッド対応のためにはロックが必要な場合があります。
int[] array = { 3,5,1,4,10,8,2,5,10};
lock (array.SyncRoot)
{
    int sum = 0;
    for (int count = 0; count < array1.Length; ++count)
    {
        sum += array1[count];
    }
}

LINQ

集合への操作といえばLINQです。配列も操作可能です。
こういう操作がいくらでも可能です。
using System.Linq; // これが必要

int[] array = { 3,5,1,4,10,8,2,5,10};

// 合計値の算出
int sum = array.Sum();

// 偶数のみ抽出
var ret = from i in array where i % 2 == 0 select i;
int[] evenArray1 = ret.ToArray();

// こっちも同じ
int[] evenArray2 = array.Where(val => val % 2 == 0).ToArray();
集合
スポンサーリンク
C#プログラミング再入門