IEnumerable
変数をタイプ別に分けたいと思います。私のコードは次のようにされていますEnumerableのタイプのみを取得する方法は?
if (type is IEnumerable)
{
var listGenericType = type.GetType().GetGenericTypeDefinition().Name;
listGenericType = listGenericType.Substring(0, listGenericType.IndexOf('`'));
if (listGenericType == "List") {
//do something
}
else if (listGenericType == "HashSet") {
//do something
}
}
私はtype.GetType().GetGenericTypeDefinition().Name
を使用し、listGenericType
はList`1
またはHashSet`1
のようですが、私はList
またはHashSet
のようにそれをしたいです。したがって、私はこの問題を処理するためにSubstring
を使用しました!
postprocessing string
タイプなしでこの問題を処理する方法はありますか?私は以下のようなコードを意味します:
if (type is IEnumerable)
{
var listGenericType = type.GetType().GetGenericTypeDefinitionWithoutAnyNeedForPostProcessing();
if (listGenericType == "List") {
//do something
}
else if (listGenericType == "HashSet") {
//do something
}
}
https://msdn.microsoft.com/en-us/library/system.type.getgenerictypedefinition.aspx –