You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DataTable转List优化遇问题:OfType<CustomtDetail>返回空列表求排查

问题原因及优化方案
  • 根本问题:你用的OfType<CustomtDetail>(注意拼写错误,应为CustomDetail)是用来从集合中筛选本身就是该类型的元素,但data.Rows里的所有元素都是DataRow类型,不存在任何CustomDetail实例,因此返回空集合是必然结果。
  • 原代码的逻辑是用每个DataRow实例创建新的CustomDetail对象,但你替换后的代码完全跳过了对象转换步骤,只是做类型筛选,逻辑完全偏离。

正确的简化优化写法

如果想用LINQ简化代码同时提升性能,需要用Select方法完成投影转换:

AllDetails = data.Rows.OfType<DataRow>().Select(row => new CustomDetail(row)).ToList();

这里先通过OfType<DataRow>确保只处理合法的DataRow元素,再用Select将每个DataRow转换为CustomDetail对象,最后转为List,既和原代码逻辑一致,又能获得更好的性能表现。

另外注意你代码里的CustomtDetail多了一个t,属于拼写错误,需要修正后才能正常编译运行。

内容的提问来源于stack exchange,提问作者user8512043

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 23:13:25