c# - 如何找到 IEnumerable元素类型?
问题描述
如果我尝试
List<dynamic> list = new List<dynamic> { "blah" };
var type = list.GetType().GetGenericArguments()[0];
我得到 'object' 而不是string
. 如何获得“真实”类型?
解决方案
尝试先访问该值,然后确定类型。
List<dynamic> list = new List<dynamic> { "blah", 15 };
var type = list[0].GetType();
Console.WriteLine(type); // prints out System.String
type = list[1].GetType();
Console.WriteLine(type); // prints out System.Int32
如果您想要所有类型的列表,请使用 Linq:
var types = list.Select(item => item.GetType());
// print out
foreach (var t in types) {
Console.WriteLine(t);
}
推荐阅读
- angular - Karma 测试 Lodash 未加载引用它的组件
- angular - 蚂蚁设计(NG-Zorro)轮播刷卡的问题
- c# - 当依赖是循环的时,如何在 Startup.cs 中实现依赖注入?
- java - 如何提高连接到 ActiveMQ HTTP 传输的速度
- razor - HiddenInput 在 ASP.NET Core 2.2 脚手架上不起作用
- ios - 在 LinkedIn iOS 应用程序中共享带有“#”字符的链接时出现问题
- javascript - 我有一个按钮可以切换我网站的主题,如果再次单击以更改回默认主题,如何制作相同的按钮?
- java - 在大型 OWL 文件中使用 Apache Jena 列出类
- gulp - Gulp:复制所有文件但排除一个扩展名
- visual-studio - 在 F# 项目中使用 ** 通配符会导致 Visual Studio 拒绝加载项目