RubyとC#の配列操作対応表


C#の配列操作を勉強していて、rubyのあのmethodに対応するのってなんだろうと思って調べたときのメモ書きです

配列の用意

ruby
list = [1,2,3]
C#
List<int> list = new List<int>() {1, 2, 3};

配列の要素数を調べる

ruby
result = list.count
C#
var result = list.Count

各要素に処理をして配列を返す

ruby
result_list = list.map{|elem| elem * 10}
C#(Linq)
var resultList = list.Select(elem => elem * 10).ToList();

条件に一致する配列を返す

ruby
result_list = list.select{|elem| elem == 1}
C#(Linq)
var resultList = list.Where(elem => elem == 1).ToList();

各要素を使って何か処理する

ruby
list.each{|elem| puts elem * 10}
C#(Linq)
list.ForEach(elem => Console.WriteLine(elem * 10));

条件に一致した最初の要素を取得

ruby
result = list.find{|elem| elem == 2}
C#(Linq)
var result = list.FirstOrDefault(elem => elem == 2);

条件を満たす要素が配列内に含まれているか調べる

ruby
result = list.any?{|elem| elem == 1})
C#(Linq)
bool result = list.Any(elem => elem == 1);

ソートする

ruby
result = list.sort_by {|elem| -elem)
C#(Linq)
var resultList = list.OrderBy(elem => -elem).ToList();

畳み込み

ruby
result = list.reduce {|sum, elem| sum + elem)
C#(Linq)
var result = list.Aggregate ( (sum, elem) => sum + elem);