機械学習基礎理論独習

誤りがあればご指摘いただけると幸いです。数式が整うまで少し時間かかります。リンクフリーです。

勉強ログです。リンクフリーです
目次へ戻る

【C#】JavaScriptでよく使うArray.prototypeのメソッドをC#のList<T>で書き換えてみる【JavaScript】

はじめに

C#でプログラムを書いているんですが、JavaScriptに慣れているので、ちょっとしたことでググってしまいます。
そのググる回数を減らすべく、JSの配列のメソッドを中心にC#のListに書き換えていこうと思います。
ちなみに同じ動きをするプログラムはいくらでもかけるので、あくまでその一例ということでご覧ください。
なお、随時書き足していく予定です。

push

JavaScriptでいうところのpushです。リストの最後尾に要素を追加します。

JavaScript

const list = ['apple', 'banana'];
list.push('orange');
console.log(list); // ['apple', 'banana', 'orange']

C#

List<string> list = new() { "apple", "banana"};
list.Add("orange");
Debug.WriteLine(string.Join(",", list.ToArray())); // apple,banana,orange

pop

JavaScriptでいうところのpopです。リストの先頭の要素を削除します。

JavaScript

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です。リストの要素を集計するときに使います。

JavaScript

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です。リストから同じサイズのリストを作成するときに使います。

JavaScript

const list = ['apple', 'banana', 'orange'];
const upperList = list.map(elm => elm.toUpperCase());
console.log(upperList); // ['APPLE', 'BANANA', 'ORANGE']

C#

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です。リストから絞り込み検索するときに使います。

JavaScript

var list = ['apple', 'banana', 'orange'];
var filteredList = list.filter(elm => elm != 'banana');
console.log(filteredList); // ['apple', 'orange']

C#

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件検索するときに使います。
候補が複数ある時は最初に見つかったものを返します。

JavaScript

const list = ['apple', 'banana', 'orange'];
const found = list.find(elm => elm === 'banana');
console.log(found); // 'banana'

C#

List<string> list = new() { "apple", "banana", "orange" };
string? found = list.Find(elm => elm == "banana");
Debug.WriteLine(found); // banana
目次へ戻る