C# 有一个类对象的集合,如何通过集合中的对象获得集合所在类
时间: 2024-03-12 21:50:21 浏览: 157
在C#中,如果你有一个类对象的集合,可以通过以下方式获得集合所在类:
1. 如果你已经知道集合中的对象类型,可以使用GetType()方法获取它的类型,然后使用该类型的Name属性获取类名。例如:
```
List<string> stringList = new List<string>();
string className = stringList.GetType().GetGenericArguments()[0].Name;
```
这里我们创建了一个List<string>类型的集合,然后使用GetType()方法获取它的类型,再使用GetGenericArguments()方法获取集合中元素的类型(在这种情况下是string),最后使用Name属性获取类名。
2. 如果你不知道集合中的对象类型,可以通过枚举集合中的元素,使用GetType()方法获取每个元素的类型,然后判断它们是否相同。如果所有元素的类型都相同,则可以使用任意一个元素的类型获取类名。例如:
```
List<object> objectList = new List<object>();
objectList.Add("hello");
objectList.Add(123);
objectList.Add(true);
Type firstType = objectList[0].GetType();
bool isSameType = true;
foreach (object obj in objectList)
{
if (obj.GetType() != firstType)
{
isSameType = false;
break;
}
}
if (isSameType)
{
string className = firstType.Name;
}
```
这里我们创建了一个List<object>类型的集合,并向其中添加了不同类型的元素。然后我们枚举集合中的元素,使用GetType()方法获取每个元素的类型,并判断它们是否相同。如果所有元素的类型都相同,就可以使用任意一个元素的类型获取类名。
阅读全文