C#のSingle()メソッドでシーケンスから単一の要素を取得する方法
C#のSingle()メソッドを使用すると、シーケンスから唯一の要素を1つだけ取得できます。LINQのQueryableクラスに属するメソッドで、コレクション内に該当する要素が正確に1つだけ存在することが前提となっています。
基本的な使い方
まず、要素が1つだけ含まれる文字列配列を用意します。
string[] str = { "one" };この配列から要素を取得するには、AsQueryable()メソッドでクエリ可能な形式に変換してから、Single()メソッドを呼び出します。
str.AsQueryable().Single();
サンプルコード
実際の動作を確認できる完全なコード例は以下の通りです。
using System;
using System.Linq;
using System.Collections.Generic;
public class Demo {
public static void Main() {
string[] str = { "one" };
string res = str.AsQueryable().Single();
Console.WriteLine(res);
}
}実行結果
one
注意点
Single()メソッドを使用する際には、以下の点に注意が必要です。
- 要素が2つ以上ある場合:InvalidOperationException例外がスローされます。
- 要素が1つもない場合:同様にInvalidOperationException例外がスローされます。
要素が存在しない可能性がある場合は、デフォルト値(参照型の場合はnull)を返すSingleOrDefault()メソッドを使用すると、例外を回避できます。また、条件を指定したい場合は、ラムダ式を引数として渡すことで、特定の条件に一致する唯一の要素を取得することも可能です。
-
C#のAggregateメソッドとは?配列要素を集計・演算する方法を解説
C#のLINQに用意されているAggregate(集計)メソッドを使うと、Sum(合計)、Min(最小値)、Max(最大値)、Average(平均)といった数学的な演算を柔軟に実装できます。Aggregateメソッドは、ラムダ式で指定した処理をシーケンスの各要素に順番に適用し、最終的に1つの結果へと集約します。ここでは、配列の全要素を掛け合わせる例を通して、その使い方を見ていきましょう。サンプル:配列要素の積を求めるまずは、次のような整数型の配列を用意します。int[] arr = { 10, 15, 20 };この配列に対して、Aggregate()メソッドを次のように呼び出します。 x *
-
C#のAddRange()メソッドを使って2つの配列をマージする方法
C#で2つの配列を1つに結合(マージ)したい場合、List<T>クラスのAddRange()メソッドを利用すると簡単に実現できます。本記事では、具体的な手順をサンプルコードと実行結果付きでわかりやすく解説します。手順1:マージする2つの配列を用意するまず、結合対象となる2つのint型配列を定義します。int[] arr1 = { 15, 20, 27, 56 };int[] arr2 = { 62, 69, 76, 92 };手順2:新しいリストを作成し、AddRange()で要素を追加する次に、新しいList<int>を生成し、AddRange()メソッドを使って2つ