ホームページ >バックエンド開発 >C++ >C#でリストをリストにキャストするより短い方法はありますか?

C#でリストをリストにキャストするより短い方法はありますか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-03 11:05:40842ブラウズ

Is There a Shorter Way to Cast a List to a List in C#?

リストからキャストするための短い構文リストへ

項目のリストをある型から別の型にキャストするには、多くの場合、次のアプローチを使用して実現できます:

List<Y> ListOfY = new List<Y>();

foreach (X x in ListOfX)
    ListOfY.Add((Y)x);

ただし、この方法では、それぞれをキャストする必要があります。項目を個別に行うのは面倒な場合があります。リスト全体を 1 ステップでキャストする、より簡潔な方法はありませんか?

答え

はい、キャストします<> System.Linq 名前空間の拡張メソッドは、リストをキャストするための簡潔な構文を提供します。これを使用する方法は次のとおりです。

List<Y> listOfY = listOfX.Cast<Y>().ToList();

次の点に注意してください。

  • System.Linq を使用してインポートします。 namespace.
  • このメソッドは、リスト自体ではなく、リスト内の各項目をキャストします。 ToList() メソッドは、新しい List を作成するために使用されます。
  • キャスト<>カスタム変換演算子はサポートされていません。このような場合は、前に示した明示的なキャスト ループのアプローチに頼る必要がある場合があります。
  • Cast<>明示的な演算子メソッド (フレームワーク 4.0) を持つオブジェクトでは機能しません。

以上がC#でリストをリストにキャストするより短い方法はありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。