超Linq入門 実践編
- 3. ? 何時?
? いまでしょう(違
? 何処で?
? データ構造の加工?変換
? 例えば
? DBから取得したデータをビジネスロジックで処理用に
? WebAPIから取得したデータを画面表示用に
? ファイルから読み込んだCSVを集計する
? データの生成
? テストデータとか
- 7. ? ひとつだけ
? First / FirstOrDefault : 最初の
? Last / LastOrDefalut : 最後の
? Single / SingleOrDefualt : 複数あれば例外
? 条件に一致する限り、
? TakeWhile : 条件に一致する限り取得
? SkipWhile : 条件に一致する限りスキップ
? 個数指定で選択
? Skip : 指定個飛ばす
? Take : 指定個取得する
- 8. ? 2つ以上の集合同士の結合など
? Zip : マージ
? 1番目同士、2番目同士…の組を作る
? Union : 和集合
? 重複は除外される
? Concat : 連結
? 単なる連結
? Join : 結合
? SQLのLeftJoinのような感じ
? GroupJoin : グループ化の後、結合
- 9. ? 集計
? Sum : 合計
? Average : 平均
? Count : 個数
? Max : 最大
? Min : 最少
? 判定
? Any : 少なくとも1つは
All : 全て
- 11. ? 変換
? ToList : List<T>への変換
? ToArray : T[]への変換
? ToDictionary : Dictionary<TKey, TValue>への変換
- 13. ? 型変換
? Cast : 各要素をキャストする
? OfType : 型条件に合うもののみ選択する
? グループ化
? GroupBy : グループ化
? ToLookUp : グループ化の後、インデックス作成
? 並び替え
? OrderBy / OrderByDescending : 昇順?降順
? ThenBy / ThenByDescending : 第2キー以降
- 14. ? オーバーロードを上手く利用しよう
? 条件を満たす最初のものを取得
? hoge.Where(pred).First()
? hoge.First(pred)
? 条件を満たす件数を取得
? hoge.Where(pred).Count()
? hoge.Count(pred)
? 2乗の和を取得
? hoge.Select(x => x*x).Sum()
? hoge.Sum(x => x*x)
? 並列処理をLINQで
? PLINQ
? AsParallel / AsOrdered
- 15. ? 集合が、空かを確認する
? × if (hoge.Count() == 0)
? ○ if (!hoge.Any())
? 複数回実行を抑制する
? ToArray/ToList での結果の確定