【C#入門】Castの使い方を解説【LINQ】


C#の『Cast』の使い方が分からない…教えてください!


C#を学んでいるけど…

Castの使い方が分からない

このような疑問を持っていませんか?

この記事では、LINQのひとつである『Cast』について現役エンジニアが分かりやすく解説します。

まだ、C#の開発環境構築が出来ていない方はこちらを参考にしてください。

Castの使い方

Castの使い方を解説する前に、Castで何が出来るのかを把握しておきましょう。

Cast = 指定したリストの型をまとめて変換

このような考え方で問題ありません。Castを使用すると指定した配列(リスト)の型を指定した型に変換します

それでは、実際のコードを用いながらCastの使い方を解説していきます。

まずは、Castの使い方から説明します。Castを使うときには以下のように記述します。

配列.Cast<型名>()

実際のコードを用いながらCastの使い方を解説していきます。

Castを使ってシーケンスを出力するときには以下のように記述します。

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;

namespace sample
{
    class LinqCast
    {
        static public void BlogLinqCast()
        {
            //値一覧を変数NumberListとして宣言・初期化
            String[] NameList = new String[] { "Taro", "Jiro", null, "Hanako" };

            //Castの実行結果を出力
            foreach(var x in NameList.Cast<string>().ToArray())
            {
                Console.WriteLine($"キャスト結果:{x}");
            }
        }
    }
}

サンプルコードを実行した際の出力結果は、以下のようになります。

キャスト結果:Taro
キャスト結果:Jiro
キャスト結果:
キャスト結果:Hanako

注目していただきたいのは、キャストした結果にNullが含まれていることです。(実行結果の3行目 Nullのため空欄表示)

似たようなLinqにOfTypeがあります。

CastとOfTypeの違いは、次の通りです。

CastとOfTypeの違い

Cast

 ⇒キャスト後にNullが残る

 ⇒キャストに失敗すると例外エラーが発生する

OfType

 ⇒Nullは残らない

 ⇒指定した型の要素のみ取得

配列.Cast<型名>()

これを基にサンプルコードを解説すると、「配列 = NameList」となります。

つまり、配列(NameListを任意の型名(String)キャスト(Cast)した結果を出力(Console.WriteLine)するということです。

このようにして、C#ではCastを使用することで、配列(リスト)の型変換をするコードを簡潔に書くことが出来ます。

【まとめ】Castは全要素のまとめて型変換できる

Castの使い方は理解できましたか?

まとめ

  • Cast = 指定したリストの型をまとめて変換
  • 配列.Cast<型名>()

この記事では、C#のCastの使い方について紹介しました。

最後になりますが、ここに関してもっと詳しく教えて欲しいときなどは、遠慮なく、お問い合わせ、コメント、Twitterにてご連絡ください。

最後までお読みいただきありがとうございました。

Tech Academy

  • 受講者数No.1のプログラミングスクール
  • 通過率10%の選考に合格した優秀な講師
  • カリキュラムを閲覧制限なし
  • コースの種類が豊富
  • オンラインで完結
  • 無料体験あり
  • 無料カウンセリングあり
  • 学割あり

\ 公式サイトはこちら /

Tech Academy 公式サイト