[解決済み】List<X>からList<Y>へのキャストのためのより短い構文?
2022-04-04 11:02:19
質問
以下のように、アイテムのリストをある型から別の型に一度にキャストすることが可能であることを知っています(オブジェクトがキャスティングを行うためのパブリックな静的明示演算子メソッドを持っていると仮定します)。
List<Y> ListOfY = new List<Y>();
foreach(X x in ListOfX)
ListOfY.Add((Y)x);
しかし、リスト全体を一度にキャストすることはできないのでしょうか?たとえば
ListOfY = (List<Y>)ListOfX;
解決方法は?
もし
X
を本当にキャストすることができます。
Y
を使用することができるはずです。
List<Y> listOfY = listOfX.Cast<Y>().ToList();
注意すべき点(H/T to commenters!)
-
を含める必要があります。
using System.Linq;
この拡張メソッドを取得するために -
これはリストそのものではなく、リスト内の各項目をキャストします。新しい
List<Y>
の呼び出しによって作成されます。ToList()
. - このメソッドは、カスタム変換演算子をサポートしていません。( 参照 Linq Cast<> ヘルパーが暗黙のキャスト演算子で動作しないのはなぜですか? )
- 明示的な演算子メソッドを持つオブジェクトに対して、このメソッドは動作しません(フレームワーク 4.0)
関連
-
[解決済み】GDI+、JPEG画像をMemoryStreamに変換する際にジェネリックエラーが発生しました。
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] C#でenumからint値を取得する
-
[解決済み] リストからランダムに項目を選択するにはどうすればよいですか?
-
[解決済み】なぜJavaの+=, -=, *=, /=複合代入演算子はキャスティングを必要としないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「未割り当てのローカル変数を使用」とはどういう意味ですか?
-
[解決済み】指定されたキャストが有効でない?
-
[解決済み】「入力文字列が正しい形式ではありませんでした」エラーの解決方法は?[重複しています]。
-
[解決済み】「namespace x already contains a definition for x」エラーの修正方法は?VS2010にコンバートした後に発生しました。
-
[解決済み】C# - パスに不正な文字がある場合
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み】 C# 条件演算子エラー 代入、call、increment、decrement、await、new object 式のみ文として使用可能です。
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。
-
[解決済み】別のスレッドがこのオブジェクトを所有しているため、呼び出し側のスレッドはこのオブジェクトにアクセスできない
-
[解決済み] 共分散と共分散の実世界の例