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

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()メソッドを使用すると、例外を回避できます。また、条件を指定したい場合は、ラムダ式を引数として渡すことで、特定の条件に一致する唯一の要素を取得することも可能です。

  1. C#のAggregateメソッドとは?配列要素を集計・演算する方法を解説

    C#のLINQに用意されているAggregate(集計)メソッドを使うと、Sum(合計)、Min(最小値)、Max(最大値)、Average(平均)といった数学的な演算を柔軟に実装できます。Aggregateメソッドは、ラムダ式で指定した処理をシーケンスの各要素に順番に適用し、最終的に1つの結果へと集約します。ここでは、配列の全要素を掛け合わせる例を通して、その使い方を見ていきましょう。サンプル:配列要素の積を求めるまずは、次のような整数型の配列を用意します。int[] arr = { 10, 15, 20 };この配列に対して、Aggregate()メソッドを次のように呼び出します。 x *

  2. 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つ