「LINQ - 拡張メソッド一覧」の版間の差分

ナビゲーションに移動 検索に移動
(文字列「</source>」を「</syntaxhighlight>」に置換)
15行目: 15行目:
     return source.Select(group => string.Format("Key={0}, Source={1}", group.Key, group.ToResult())).ToResult();
     return source.Select(group => string.Format("Key={0}, Source={1}", group.Key, group.ToResult())).ToResult();
  }
  }
</syntaxhighlight>
<br><br>
== 要素の取得(単一) ==
該当の要素がない場合<br>
* ~OrDefaultが付いていないメソッドは例外をスローする。<br>
* ~OrDefaultが付いたメソッドは型の規定値を返す。<br>
<center>
{| class="wikitable"
|-
! メソッド名 !! 機能
|-
| ElementAt<br>ElementAtOrDefault || 指定した位置(インデックス)にある要素を返す。
|-
| First<br>FirstOrDefault || 最初の要素を返す。
|-
| Last<br>LastOrDefault || 最後の要素を返す。
|-
| Single<br>SingleOrDefault || 唯一の要素を返す。該当する要素が複数ある場合、例外をスローする。
|}
</center>
<syntaxhighlight lang="c#">
var source = new[] { 3, 4, 5, 6, 7, 8, 9, 9 };
Console.WriteLine(source.ElementAt(2));
// → 5
Console.WriteLine(source.ElementAtOrDefault(10));
// → 0
Console.WriteLine(source.First());
// → 3
Console.WriteLine(source.First(e => e > 5));
// → 6
Console.WriteLine(source.Last());
// → 9
Console.WriteLine(source.Last(e => e < 5));
// → 4
Console.WriteLine(source.Single());
// → System.InvalidOperationException: シーケンスに複数の要素が含まれている
Console.WriteLine(source.Single(e => e < 4 ));
// → 3
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
<br><br>

案内メニュー