C#object转List
时间: 2024-09-07 20:04:41 浏览: 125
C# 泛型参数转换
5星 · 资源好评率100%
在C#中,如果你有一个object类型的对象,而你需要将其转换为List类型,你可以使用类型转换或者LINQ的Cast方法。但需要注意的是,Object类型并不能直接转换为List,因为Object是所有类型的基类,所以首先需要确定Object实际引用的类型。
如果Object是一个数组或者是实现了IEnumerable接口的集合,那么可以通过转换为List<T>,其中T是你期望的类型。以下是一个示例代码:
```csharp
object obj = new List<int> { 1, 2, 3 }; // 假设object实际是List<int>
List<int> list = (List<int>)obj; // 直接类型转换(需要确保类型安全)
```
或者使用LINQ的Cast方法进行安全的类型转换:
```csharp
object obj = new List<int> { 1, 2, 3 }; // 假设object实际是List<int>
List<int> list = ((IEnumerable)obj).Cast<int>().ToList(); // 使用Cast方法转换并获取List<int>
```
如果Object是一个数组,可以这样转换:
```csharp
object obj = new int[] { 1, 2, 3 }; // 假设object实际是int数组
List<int> list = ((int[])obj).ToList(); // 直接类型转换
```
或者是使用LINQ的Cast和ToList方法:
```csharp
object obj = new int[] { 1, 2, 3 }; // 假设object实际是int数组
List<int> list = ((IEnumerable)obj).Cast<int>().ToList(); // 使用Cast方法转换并获取List<int>
```
在这些转换中,使用`as`关键字或者`is`关键字进行类型检查是一个好习惯,以避免运行时的InvalidCastException异常。
阅读全文