Web備忘録

プログラミングを中心に技術的な事柄を忘れないように書き残します。

[C#][VB] LINQでコレクションをチャンク(N個ずつ)に分割

LINQでチャンク チャンクとは、大きな塊、ぶつ切り、大量、などの意味を持つ英単語です。つまりひとまとまりのデータの塊を指します。 例えば配列などのコレクションに対して、N個ずつの要素のチャンクまとめて処理を行いたい場合があります。100個の要素を持つコレクションを2個の要素をもつチャンク50個に分割するイメージです。これを拡張メソッドとして用意しておけば便利なはずです。 拡張メソッドやイテレータについては以下の記事にまとめています。 ...

続きを読む ⇒

[LINQ][C#] LINQ to XML でXMLの操作方法

LINQ to XML とは LINQ to XML は、.NET Framework プログラミング言語から XML を操作できるようにする、LINQ に対応したメモリ内 XML プログラミング インターフェイスです。 ... LINQ to XML の最も重要な利点は、統合言語クエリ (LINQ) と統合されていることです。この統合により、メモリ内の XML ドキュメントに対するクエリを記述して、要素および属性のコレクションを取得できます。 LINQ to XMLを使 ...

続きを読む ⇒

[LINQ][C#] Aggregateの使い方(畳み込み, fold)

LINQのAggregateとは LINQを使った畳み込み(fold)の方法を紹介します。畳み込みにはAggregateを使います。Aggregateは「集約」や「集める」といった意味を持ちます。 Aggregateはどのような処理かというと、シーケンスにアキュムレータ関数を適用する物らしいです。ざっくり言うと データから1つの要素を取り出し ... 取り出した要素と累積値(アキュムレータ値)を引数にとる関数を実行し ... ...

続きを読む ⇒

[LINQ][C#] UnionとConcatでデータを連結

LINQでデータを連結させる方法 LINQを使い複数のデータソースを連結させることができます。SQLでいうところのUNIONがLINQでもUnion、UNION ALLに該当するのがConcatです。 まずはUnionで配列を連結させてみます。 // データ string[] data1 = { "太郎", "次郎" }; string[] data2 = { "三郎", "四郎", "五郎" }; // Union var result = d ...

続きを読む ⇒

[LINQ][C#] Groupでデータをグループ化する

1つのキーでグループ化 LINQを使ってデータを特定のキー列でグループ化するにはGroupByを使います。 仮にBookというクラスを定義します。 class Book { public string Title { get; set; } public string Author { get; set; } public int Pages { get; set; } public int Category { get; ...

続きを読む ⇒