मैं यह निर्धारित करने की कोशिश कर रहा हूं कि रनटाइम प्रकार किसी प्रकार का संग्रह प्रकार है या नहीं। मेरे पास नीचे क्या काम है, लेकिन यह अजीब लगता है कि मुझे उन प्रकारों का नाम देना है जिन्हें मैं संग्रहित प्रकारों के रूप में मानता हूं जैसे मैंने किया है।यह निर्धारित करने के लिए कि कोई प्रकार संग्रह का प्रकार है या नहीं?
नीचे दिए गए कोड में, सामान्य तर्क का कारण यह है कि, मेरे ऐप में, मैं उम्मीद करता हूं कि सभी संग्रह सामान्य हों।
bool IsCollectionType(Type type)
{
if (!type.GetGenericArguments().Any())
return false;
Type genericTypeDefinition = type.GetGenericTypeDefinition();
var collectionTypes = new[] { typeof(IEnumerable<>), typeof(ICollection<>), typeof(IList<>), typeof(List<>) };
return collectionTypes.Any(x => x.IsAssignableFrom(genericTypeDefinition));
}
मैं इस कोड को बेहतर या सरल बनाने के लिए कैसे प्रतिक्रिया दूंगा?
एक बात है कि आप आमतौर पर नहीं 'स्ट्रिंग'' char's का एक संग्रह के रूप में विचार करने के लिए, भले ही यह लागू करता है 'IEnumerable' चाहते हैं। –
svick