オブジェクトが特定の型の配列であるかどうかを確認する方法は?
2023-09-18 22:38:20
質問
これは問題なく動作します。
var expectedType = typeof(string);
object value = "...";
if (value.GetType().IsAssignableFrom(expectedType))
{
...
}
を設定せずに、値が文字列配列であるかどうかを確認するにはどうすればよいでしょうか。
expectedType
を
typeof(string[])
? みたいなことをしたいのですが。
var expectedType = typeof(string);
object value = new[] {"...", "---"};
if (value.GetType().IsArrayOf(expectedType)) // <---
{
...
}
これは可能か?
どのように解決するのですか?
使用方法 タイプ.IsArray と タイプ.GetElementType() で、配列の要素型を確認します。
Type valueType = value.GetType();
if (valueType.IsArray && expectedType.IsAssignableFrom(valueType.GetElementType())
{
...
}
注意すべきは
タイプ.IsAssignableFrom()
. もし、型が完全に一致するかどうかをチェックしたいのであれば、等しいかどうかをチェックする必要があります (
typeA == typeB
). もし、与えられた型が型そのものかサブクラス(またはインターフェイス)であるかを チェックしたいのであれば
Type.IsAssignableFrom()
:
typeof(BaseClass).IsAssignableFrom(typeof(ExpectedSubclass))
関連
-
[解決済み] [Solved] 1つ以上のエンティティで検証に失敗しました。詳細は'EntityValidationErrors'プロパティを参照してください [重複]。
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] enumを列挙するには
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] ディープクローンオブジェクト
-
[解決済み] オブジェクトの種類を決定しますか?
-
[解決済み] JavaScriptで変数が配列であるかどうかを確認する方法は?
-
[解決済み] C#でベースコンストラクタを呼び出す
-
[解決済み] 新しい配列を作成せずに、既存のJavaScript配列を別の配列で拡張する方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] 1つ以上のエンティティで検証に失敗しました。詳細は'EntityValidationErrors'プロパティを参照してください [重複]。
-
[解決済み] エンティティタイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】スクリプトクラスが見つからないので、スクリプトコンポーネントを追加できない?
-
[解決済み】C#はJavaのcharAt()と同等?)
-
[解決済み】Moqを使用してメソッド呼び出しを検証する
-
[解決済み】値をNULLにすることはできません。パラメータ名:source
-
[解決済み】ランダムなブーリアンを生成する最速の方法
-
[解決済み】IntPtrとは一体何なのか?
-
[解決済み】画像のペイントにTextureBrushを使用する方法
-
[解決済み】Microsoft.Extensions.LoggingからILoggerを解決することができない