C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のgroup by句で要素をグループ化する方法

C#では、group by句を使用することで、式の結果を条件に応じて複数のグループに分割できます。LINQの強力な機能の一つであり、データを分類・整理する際に非常に便利です。

group byの基本的な使い方

まず、次のような整数型の配列を用意します。

int[] a = { 5, 10, 15, 20, 25, 30 };

この配列に対して、group byorderbyを組み合わせることで、「20以上かどうか」という条件に基づいて要素をグループ化します。

var check = from element in a orderby element group element by chkGreater(element);

ここでは、判定用メソッドchkGreater()が各要素に対してtrue(20以上)またはfalse(20未満)を返し、その戻り値がグループのキーとなります。

サンプルコード全体

以下に完全なコード例を示します。

using System;
using System.Linq;
class Demo {
    static void Main() {
        int[] a = { 5, 10, 15, 20, 25, 30 };
        var check = from element in a orderby element group element by chkGreater(element);
        foreach (var val in check) {
            Console.WriteLine(val.Key);
            foreach (var res in val) {
                Console.WriteLine(res);
            }
        }
    }
    static bool chkGreater(int a) {
        return a >= 20;
    }
}

実行結果

プログラムを実行すると、各グループのキー(FalseTrue)と、それに属する要素が順に出力されます。

False
5
10
15
True
20
25
30

このように、group by句を使えば、任意の条件に基づいてコレクション内の要素を柔軟にグループ化できます。キーにはbool値だけでなく、文字列や数値なども使用できるため、さまざまな場面で活用できます。

  1. CSSのoutlineプロパティとは?要素の外側に線を引く方法を実例付きで解説

    Webデザインをしていると、ページ上の要素の周りにアウトライン(輪郭線)を表示したい場面があります。例えば、目立たせたいボックスをデザインする場合、色付きのアウトラインを追加することで、ユーザーの注意をその要素へ引きつけることができます。 そこで役立つのが、CSSのoutlineプロパティです。outlineプロパティを使えば、要素の境界線(border)の外側に線を追加し、Webページ上で要素を目立たせられます。 この記事では、具体的なコード例を交えながら、アウトラインの基本と、outlineプロパティを使ってWeb要素の外側に線を描く方法を解説します。読み終える頃には、outlineプロパ

  2. C#の「as」演算子の使い方を徹底解説!型変換の基本とサンプルコード

    C#における「as」演算子は、互換性のある型同士の変換を行うための演算子です。キャスト操作に似ていますが、実行できるのは参照変換、null許容変換、ボックス化変換のみという特徴があります。ユーザー定義の変換など、それ以外の変換は「as」では行えず、その場合は通常のキャスト式を使用する必要があります。as演算子の基本構文「as」演算子は次のように記述します。ここでは、object型の値をstring型へ変換しています。string s = obj[i] as string;変換に成功した場合はその結果が返され、失敗した場合には例外をスローする代わりにnullが返される点が、明示的なキャストとの大