C#のgroup by句で要素をグループ化する方法
C#では、group by句を使用することで、式の結果を条件に応じて複数のグループに分割できます。LINQの強力な機能の一つであり、データを分類・整理する際に非常に便利です。
group byの基本的な使い方
まず、次のような整数型の配列を用意します。
int[] a = { 5, 10, 15, 20, 25, 30 };この配列に対して、group byとorderbyを組み合わせることで、「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;
}
}実行結果
プログラムを実行すると、各グループのキー(False/True)と、それに属する要素が順に出力されます。
False 5 10 15 True 20 25 30
このように、group by句を使えば、任意の条件に基づいてコレクション内の要素を柔軟にグループ化できます。キーにはbool値だけでなく、文字列や数値なども使用できるため、さまざまな場面で活用できます。
-
CSSのoutlineプロパティとは?要素の外側に線を引く方法を実例付きで解説
Webデザインをしていると、ページ上の要素の周りにアウトライン(輪郭線)を表示したい場面があります。例えば、目立たせたいボックスをデザインする場合、色付きのアウトラインを追加することで、ユーザーの注意をその要素へ引きつけることができます。 そこで役立つのが、CSSのoutlineプロパティです。outlineプロパティを使えば、要素の境界線(border)の外側に線を追加し、Webページ上で要素を目立たせられます。 この記事では、具体的なコード例を交えながら、アウトラインの基本と、outlineプロパティを使ってWeb要素の外側に線を描く方法を解説します。読み終える頃には、outlineプロパ
-
C#の「as」演算子の使い方を徹底解説!型変換の基本とサンプルコード
C#における「as」演算子は、互換性のある型同士の変換を行うための演算子です。キャスト操作に似ていますが、実行できるのは参照変換、null許容変換、ボックス化変換のみという特徴があります。ユーザー定義の変換など、それ以外の変換は「as」では行えず、その場合は通常のキャスト式を使用する必要があります。as演算子の基本構文「as」演算子は次のように記述します。ここでは、object型の値をstring型へ変換しています。string s = obj[i] as string;変換に成功した場合はその結果が返され、失敗した場合には例外をスローする代わりにnullが返される点が、明示的なキャストとの大