如何将List<c1>中的指定字段复制到List<c2>?
解决方案
你的代码无法运行的核心原因是:LINQ查询返回的是匿名类型集合,和List<c2>类型不兼容,不能直接赋值。需要显式创建c2类的实例并映射字段,再转换为List<c2>。
以下是两种可行的实现方式:
方法1:使用方法语法(推荐)
假设你的c1集合实例名为c1List,代码如下:
List<c2> c2list = c1List.Select(a => new c2 { id = a.id, firstname = a.firstname }).ToList();
方法2:使用查询表达式语法
如果习惯LINQ查询表达式的写法,也可以这样写:
List<c2> c2list = (from a in c1List select new c2 { id = a.id, firstname = a.firstname }).ToList();
关键说明
- 必须在
select中直接创建c2的实例,而非匿名类型,确保类型匹配。 - 调用
ToList()方法将LINQ的延迟查询结果转换为List<c2>实例。 - 注意替换代码中的
c1List为你实际的List<c1>集合变量名。
内容的提问来源于stack exchange,提问作者Vihasi
相关产品推荐
相关产品推荐

