私はいくつかのプロパティを持つクラスを持っています。List<T>
私は動的に指定されたリストのサイズを決定することができる必要があります。リフレクションを使用してリスト内のアイテム数を取得する方法
以下は私がこれまで持っていたコードです。 switch文を取り除き、これを一つの一般的なステートメントとして持つにはどうすればよいですか?私はList<T>
にキャストしたいですが、それはうまくいきません。ジェネリック型指定されたList<>
インターフェイスIList
を実装しているため
switch (Inf.GetType()
.GetProperty(propertyName)
.GetValue(Inf)
.GetType()
.UnderlyingSystemType.GenericTypeArguments[0]
.Name)
{
case "String":
dynamicListCount = ((List<string>)Inf.GetType().GetProperty(propertyName).GetValue(Inf)).Count;
break;
case "Int32":
dynamicListCount = ((List<Int32>)Inf.GetType().GetProperty(propertyName).GetValue(Inf)).Count;
break;
default:
throw new Exception("Unknown list type");
}
あなたはIList' 'としてキャストしていないのはなぜか? –
なぜあなたが 'List'を使わないのか分かりません.Count –