Desidero separare le variabili IEnumerable
in base al loro tipo. Il mio codice è simile a questo:come ottenere solo il tipo di 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
}
}
Quando uso type.GetType().GetGenericTypeDefinition().Name
, il listGenericType
è come List`1
o HashSet`1
ma lo voglio come List
o HashSet
. Quindi, ho usato Substring
per gestire questo problema!
È comunque possibile gestire questo problema senza postProcessing string
tipo? Intendo qualcosa come sotto il codice:
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 –