List 类型的数据如何转换为List类型的数据

stg609 2009-03-06 07:07:54
本来想用如下这种方法进行强制转换:

List<object> obj1 = new List<object>{1,2,3};
List<int> obj2 = (List<int>)obj1;

但是,报错,说是无法将类型"System.Collections.Generic.List'l[System.Object]"的对象强制转换为类型"System.Collections.Generic.List'l[System.Int32]"
...全文
286 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
stg609 2009-03-10
  • 打赏
  • 举报
回复
在MSDN上找到一个方法是ConvertTo<>()
ProjectDD 2009-03-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 guoyichao 的回复:]
4.0才支持协变和逆变,允许这样转换。
[/Quote]

//--我给你剪一段C#4.0白皮书上的内容参考一下,以做补充--

Limitations
限制
Variant type parameters can only be declared on interfaces and delegate types, due to a restriction in the CLR. Variance only applies when there is a reference conversion between the type arguments. For instance, an IEnumerable<int> is not an IEnumerable<object> because the conversion from int to object is a boxing conversion, not a reference conversion.

变性类型参数只能在接口和委托类型中声明,这是CLR的限制。变性只能应用在类型参数的按引用转换之间。例如,IEnumerable<int>不能作为IEnumerable<object>使用,因为从int到object的转换是装箱转换,而不是引用转换。

cppfaq 2009-03-06
  • 打赏
  • 举报
回复
目前只能遍历/unbox,然后加进去
云想慕尘 2009-03-06
  • 打赏
  • 举报
回复
if(obj1 is obj2)
{
转换;
}
fskjb01 2009-03-06
  • 打赏
  • 举报
回复
如果有继承关系的话,通过多态就可以,否则不行的!!
guoyichao 2009-03-06
  • 打赏
  • 举报
回复
4.0才支持协变和逆变,允许这样转换。
ProjectDD 2009-03-06
  • 打赏
  • 举报
回复
这样转换,又没有直接继承关系什么的;

泛型推出就是强调类型的单一不要象原来ArrayList al; 那样,可能

al.Add("aaa");
al.Add(33);

这样会少约束,有了泛型就可以很大程度上避免这样的不良状态况发生了,也避免了
box unbox 保证集合是强类型 而大大提高了运行效率;

对类而言只是继承关系的才可以这第转换吧 ;

object o=obj1;
List<int> lints=o as List<int>; 估计lints也会是null 吧
代码下载地址: https://pan.quark.cn/s/a4b39357ea24 ### HSMS/SEMI通讯E37说明书中文关键知识点 #### 一、HSMS概述 - **HSMS**(High-Speed SECS Message Service)是一种专为半导体工厂内部计算机之间进行高速消息传输而构建的通信标准。该标准旨在逐步取代原有的SEMIE4(SECS-I)和SEMIE13(SECS Message Service),特别是在需要高速数据交换或简单的点对点拓扑结构无法满足实际需求的情况下。 - HSMS的核心宗旨在于提供一种机制,使来自不同制造商的设备能够达成无缝对接和互操作状态,即便这些设备在设计理念和通信机制上存在显著差异。 - HSMS不仅适用于TCP/IP优先于OSI模型的应用环境,同时也能作为SEMIE4和SEMIE13的有效替代方案。 #### 二、HSMS的应用范围 - HSMS主要部署于半导体制造业中的计算机系统之间进行消息交换的场景,如自动化生产线、设备监控系统等。 - 该标准界定了通信接口,使得半导体工厂内的各类设备能够实现高效且可靠的数据传输。 #### 三、HSMS与其他标准的关系 - **SEMIE4 (SECS-I)**:规定了消息传输的基本规则和格式。 - **SEMIE5 (SECS-II)**:明确了消息的具体内容和结构。 - **IETF Documents**: - RFC791 - Internet协议 - RFC792 - Internet控制消息协议 - RFC793 - 传输控制协议 - RFC1120 - Internet主机通信层的要求 - RFC1340 - 指定号码 - **POSIX D...
内容概要:本文系统研究了虚拟同步发电机(VSG)的惯量-阻尼协同自适应并网控制策略,旨在提升微电网在并网过程中的频率稳定性与动态响应能力。通过Simulink搭建VSG控制模型,结合Matlab实现算法仿真,深入分析了惯量与阻尼参数的自适应调节机制,并融合黑启动、预同步控制、虚拟阻抗等关键技术,有效增强了系统在电网频率波动下的鲁棒性与功率分配均衡性。研究不仅构建了完整的VSG双机并联仿真平台,还验证了所提控制策略在微电网黑启动、并网切换及负载突变等典型工况下的可行性与优越性,为新能源并网系统的稳定性控制提供了理论依据与技术支撑。; 适合人群:具备电力系统、自动化、电气工程等相关专业背景,熟悉Matlab/Simulink仿真环境,从事新能源并网、微电网控制、虚拟同步机技术、电力电子与电力系统稳定性研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握虚拟同步发电机的核心控制原理及其在微电网中的应用;②学习惯量与阻尼参数的协同自适应调控方法,提升系统频率响应性能;③通过Simulink搭建双机并联VSG系统,完成黑启动、预同步、功率均分等关键过程的仿真验证;④为科研论文复现、课题设计或实际工程项目提供可复用的模型与算法参考。; 阅读建议:建议读者结合文中所述仿真模型与代码资源,按照控制策略的设计流程逐步实践,重点关注参数整定、控制环路设计及系统稳定性判据的分析。推荐关注公众号“荔枝科研社”获取完整资料包,以便深入理解并拓展至更复杂的多源协同控制场景。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧