はじめに
今C#でプログラムを書いているんですが、JavaScriptに慣れているので、ちょっとしたことでググってしまいます。
そのググる回数を減らすべく、JSの配列のメソッドを中心にC#のList
ちなみに同じ動きをするプログラムはいくらでもかけるので、あくまでその一例ということでご覧ください。
なお、随時書き足していく予定です。
push
JavaScriptでいうところのpushです。リストの最後尾に要素を追加します。
const list = ['apple', 'banana']; list.push('orange'); console.log(list); // ['apple', 'banana', 'orange']
List<string> list = new() { "apple", "banana"}; list.Add("orange"); Debug.WriteLine(string.Join(",", list.ToArray())); // apple,banana,orange
pop
JavaScriptでいうところのpopです。リストの先頭の要素を削除します。
const list = ['apple', 'banana', 'orange']; list.pop(); console.log(list); // ['apple', 'banana']
C#
※RemoveAtはpopと異なり、戻り値がありませんので注意してください。
List<string> list = new() { "apple", "banana", "orange" }; list.RemoveAt(list.Count - 1); Debug.WriteLine(string.Join(",", list.ToArray())); // apple,banana
reduce
JavaScriptでいうところのreduceです。リストの要素を集計するときに使います。
const list = ['apple', 'banana', 'orange']; const joined = list.reduce((p, c) => p + c); console.log(joined); // bananaorangeorange
C#
Aggregateは直訳で"集計する"という意味です。
List<string> list = new(){ "apple", "banana", "orange" }; string joined = list.Aggregate((p, c) => p + c); Debug.WriteLine(joined); // applebananaorange
map
JavaScriptでいうところのmapです。リストから同じサイズのリストを作成するときに使います。
const list = ['apple', 'banana', 'orange']; const upperList = list.map(elm => elm.toUpperCase()); console.log(upperList); // ['APPLE', 'BANANA', 'ORANGE']
List<string> list = new(){ "apple", "banana", "orange" }; List<string> upperList = list.Select(elm => elm.ToUpper()).ToList(); Debug.WriteLine(string.Join(",", upperList.ToArray())); // APPLE,BANANA,ORANGE
filter
JavaScriptでいうところのfilterです。リストから絞り込み検索するときに使います。
var list = ['apple', 'banana', 'orange']; var filteredList = list.filter(elm => elm != 'banana'); console.log(filteredList); // ['apple', 'orange']
List<string> list = new() { "apple", "banana", "orange" }; List<string> filteredList = list.Where(elm => elm != "banana").ToList(); Debug.WriteLine(string.Join(",", filteredList.ToArray())); // apple,orange
find
JavaScriptでいうところのfindです。リストから1件検索するときに使います。
候補が複数ある時は最初に見つかったものを返します。
const list = ['apple', 'banana', 'orange']; const found = list.find(elm => elm === 'banana'); console.log(found); // 'banana'
List<string> list = new() { "apple", "banana", "orange" }; string? found = list.Find(elm => elm == "banana"); Debug.WriteLine(found); // banana