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<型名>()
これを基にサンプルコードを解説すると、「配列 = NameList」となります。
つまり、配列(NameList)を任意の型名(String)にキャスト(Cast)した結果を出力(Console.WriteLine)するということです。
このようにして、C#ではCastを使用することで、配列(リスト)の型変換をするコードを簡潔に書くことが出来ます。
【まとめ】Castは全要素のまとめて型変換できる
Castの使い方は理解できましたか?
この記事では、C#のCastの使い方について紹介しました。
最後になりますが、ここに関してもっと詳しく教えて欲しいときなどは、遠慮なく、お問い合わせ、コメント、Twitterにてご連絡ください。
最後までお読みいただきありがとうございました。