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

C#のCast()メソッドで要素をキャストする方法

C#のCast()メソッドとは

C#では、コレクション内の要素を指定した型に変換(キャスト)する際に、LINQのCast()メソッドを使用します。特に、List<object>のように要素がobject型として格納されているリストを、string型などの具体的な型のコレクションへ変換したい場合に非常に便利です。

Cast()メソッドの基本的な使い方

まず、次のようなリストを用意します。

List<object> myList = new List<object> { "Mac", "Windows", "Linux", "Solaris" };

このリストに対してCast()メソッドでstring型へのキャストを行い、さらにSubstring()メソッドと組み合わせることで、各文字列の先頭2文字を取り出して表示できます。

IEnumerable<string> res = myList.AsQueryable().Cast<string>().Select(str => str.Substring(0, 2));

サンプルコード

それでは、完全なサンプルプログラムを見てみましょう。

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

class Demo {
    static void Main() {
        List<object> list = new List<object> { "keyboard", "mouse", "joystick", "monitor" };

        // 各文字列から先頭2文字を取得する
        IEnumerable<string> res = list.AsQueryable().Cast<string>().Select(str => str.Substring(0, 2));

        foreach (string str in res)
            Console.WriteLine(str);
    }
}

実行結果

ke
mo
jo
mo

処理の流れの解説

このプログラムの処理は、以下のステップで構成されています。

  • AsQueryable():リストをIQueryableに変換し、LINQクエリを適用できるようにします。
  • Cast<string>()object型の各要素をstring型にキャストします。
  • Select(str => str.Substring(0, 2)):各文字列の先頭2文字を抽出する射影処理を実行します。

その結果、「keyboard」→「ke」、「mouse」→「mo」、「joystick」→「jo」、「monitor」→「mo」というように、各文字列の最初の2文字が順番に出力されます。Cast()メソッドを活用することで、異なる型が混在する可能性のあるコレクションも、安全かつ簡潔に特定の型として扱えるようになります。

  1. 【C#】String.Join()メソッドで文字列配列を連結する方法

    String.Join()メソッドとはC#のString.Join()メソッドは、文字列配列のすべての要素を1つの文字列に連結するためのメソッドです。各要素の間には、引数で指定した区切り文字(セパレーター)が自動的に挿入されます。たとえば、区切り文字として改行コード「\n」を指定すれば、配列の各要素がそれぞれ別の行に配置された、複数行の文字列を簡単に作成できます。基本的な構文String.Join(\n, starray);第1引数: 要素間に挿入する区切り文字第2引数: 連結対象の文字列配列戻り値: 連結された1つの文字列サンプルコード以下は、5つの文字列要素を持つ配列を改行コードで連結し、

  2. Pythonでタプルのリストを文字列にフラット化する方法

    はじめにPythonでタプルのリスト(リスト内に含まれる複数のタプル)を文字列形式にフラット化したい場合、str関数とstripメソッドを組み合わせることで簡単に実現できます。まず前提として、リストは整数・浮動小数点数・文字列など、さまざまなデータ型の値を混在させて格納できる柔軟なデータ構造です。タプルのリストとは、リストの中に複数のタプルが格納されている状態を指します。strip() メソッド: 文字列の先頭と末尾から、指定した特定の文字を取り除きます。str() 関数: 引数として渡されたデータを文字列型に変換します。以下に具体的な実装例を示します。サンプルコードmy_list = [(1