配列のメソッド
CoddyのC#ジャーニー「基礎」セクションの一部 — レッスン 58/69。
配列には多くのメソッド(機能)が備わっています。メソッドにアクセスするには、次のように記述します:
Array.MethodName(arrayName, otherParameters)一般的な配列メソッド:
Clear(array, index, length) - 配列の要素をクリアし、指定した範囲の要素を 0、false、または null に設定します:
int[] numbers = {1, 2, 3, 4, 5};
Array.Clear(numbers, 1, 3);
// numbers は {1, 0, 0, 0, 5} になりますReverse(array) - 配列内の要素の順序を反転させます。
int[] numbers = {1, 2, 3, 4, 5};
Array.Reverse(numbers);
// numbers は {5, 4, 3, 2, 1} になりますSort(array) - 配列の要素を昇順にソートします:
int[] numbers = {5, 2, 9, 1, 5, 6};
Array.Sort(numbers);
// numbers は {1, 2, 5, 5, 6, 9} になりますCopy(sourceArray, sourceIndex, destinationArray, destinationIndex, length) - ある配列から別の配列へ、指定した範囲の要素をコピーします:
int[] source = {1, 2, 3, 4, 5};
int[] destination = new int[5];
Array.Copy(source, 0, destination, 0, 5);
// destination は {1, 2, 3, 4, 5} になります異なる位置を使用した例:
int[] source = {1, 2, 3, 4, 5};
int[] destination = new int[7];
Array.Copy(source, 1, destination, 2, 3);
// destination は {0, 0, 2, 3, 4, 0, 0} になります
// インデックス 1 から始まる source の要素 2, 3, 4 をコピーしました
// それらをインデックス 2 から始まる destination に配置しましたチャレンジ
簡単2つの配列を引数として受け取るMergeという名前のメソッドを作成してください。このメソッドは、2つの配列を1つのソートされた配列にマージして返します。
例えば、次のような引数の場合:Merge(new string[] {"1", “4”, “2”}, new string[] {"2", “5”, “9”}) は ["1", “2”, “2”, “4”, “5”, “9”] を返します。
ある配列から別の配列に要素をコピーするには、Array.Copy()を使用します。構文は次の通りです:
Array.Copy(sourceArray, sourceStartPosition, destinationArray, destinationStartPosition, length)例:
// ソース配列
string[] sourceArray = {"1", "2", "3", "4", "5"};
// コピー先配列
string[] destinationArray = new string[5];
// sourceArrayからdestinationArrayに要素をコピーする
Array.Copy(sourceArray, 0, destinationArray, 0, 5);コピー後のコピー先配列:1 2 3 4 5
チートシート
配列には、Array.MethodName() 構文でアクセスできる組み込みメソッドがあります。
Clear(array, index, length)- 要素をゼロ、false、または null に設定しますReverse(array)- 要素の順序を反転させますSort(array)- 要素を昇順にソートしますCopy(sourceArray, sourceIndex, destinationArray, destinationIndex, length)- 配列間で要素をコピーします
例:
int[] numbers = {1, 2, 3, 4, 5};
Array.Clear(numbers, 1, 3);
// numbers will be {1, 0, 0, 0, 5}int[] numbers = {1, 2, 3, 4, 5};
Array.Reverse(numbers);
// numbers will be {5, 4, 3, 2, 1}int[] numbers = {5, 2, 9, 1, 5, 6};
Array.Sort(numbers);
// numbers will be {1, 2, 5, 5, 6, 9}int[] source = {1, 2, 3, 4, 5};
int[] destination = new int[5];
Array.Copy(source, 0, destination, 0, 5);
// destination will be {1, 2, 3, 4, 5}自分で試してみよう
using System;
public class Program {
public static string[] Merge(string[] arr1, string[] arr2) {
// ここにコードを書いてください
}
public static void Main(string[] args) {
string textArr1 = Console.ReadLine();
string textArr2 = Console.ReadLine();
string[] arr1 = textArr1.Split(",");
string[] arr2 = textArr2.Split(",");
string[] mergedArray = Merge(arr1, arr2);
Console.WriteLine(string.Join(", ", mergedArray));
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。