Ich möchte IEnumerable
Variablen nach ihren Typen trennen. Mein Code ist wie folgt:Wie bekomme ich nur die Art von 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
}
}
Als ich type.GetType().GetGenericTypeDefinition().Name
verwenden, die listGenericType
wie List`1
oder HashSet`1
ist, aber ich will es wie List
oder HashSet
. So habe ich Substring
verwendet, um dieses Problem zu behandeln!
Gibt es trotzdem dieses Problem ohne postProcessing string
Art zu behandeln? Ich meine etwas wie unten Code:
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 –