Listのメソッド。Scalaの場合とC#での書き方の違い。
あまり対比させるのは良くないと思いつつ。ただLinqは無しで。なぜって、僕の仕事環境ではLinqはまだ使えないからですよ!悔しいからですよ!
対比表
条件 | Scala | C# |
生成 | val list = List("a", "b", "aa", "bb", "ccc") | var list = new List |
アクセス | list(1) | list[1] |
特定条件の要素数 | list.count(s => s.length == 2) | 無い |
先頭の特定要素数を削除したリストを取得 | val list2 = list.drop(2) | list.RemoveRange(0,2) |
末尾の特定要素数を削除したリストを取得 | val list3 = list.dropRight(2) | list.RemoveRange(list.Count - 2, 2) // 無理やり |
特定の要素が存在するか確認 | list.exists(s => s == "aa") | list.Exists(s => s.Equals("aa")) |
特定の条件を満たすリストを取得 | val list4 = list.filter(s => s.length == 2) | list.FindAll(s => s.Length == 2) |
全ての要素が特定の条件を満たしているか | list.forall(s => s.endsWith("b")) | list.TrueForAll(s => s.EndsWith("b")) |
全ての要素に大して処理を実行 | list.foreach(s => println(s)) | list.ForEach(s => Console.WriteLine(s)) |
先頭要素を返す | val list5 = list.head | 無い |
末尾を覗いた残りの要素を返す | val list6 = list.init | 無い |
リストが空かどうか | list.isEmpty | 無い |
要素数を返す | list.length | list.Count |
最後の要素を返す | list.last | 無い |
全ての要素に処理を施したリストを取得 | val list7 = list.map(s => s + "y") | list.ConvertAll(s => s + "y") |
リストの要素を並べた文字列を作る | list.mkString(", ") | 無い |
特定条件の要素を全て削除したリストを取得 | val list8 = list.remove(s => s.length == 2) | list.RemoveAll(s => s.Length == 2) |
要素全て逆順に並び替え | val list9 = list.reverse | list.Reverse() |
特定条件にソートしたリストを取得 | val list10 = list.sort((s, t) => s.length - t.length < 0) | list.Sort((s, t) => s.Length - t.Length) |
先頭要素以外のリストを取得 | val list11 = list.tail | 無い |