.net - 如何将对象列表从一种类型转换为另一种类型

标签 .net converter object-type

我有两个对象。

class User{
 public int id{get;set;}
 public string name{get;set;}
}

class UserProtectedDetails{
 public string name{get;set;}
}

如何转换 List<User>List<UserProtectedDetails>

我知道如何在反射(reflection)中做到这一点,但无论如何都可以用 Linq 或其他 .NET 方式做到这一点吗?

最佳答案

is there anyway to do it in linq or other .net way?

当然:

List<User> list = ...; // Make your user list
List< UserProtectedDetails> = list
    .Select(u => new UserProtectedDetails{name=u.name})
    .ToList();

编辑:(响应 comment)如果您想避免 {name = u.name} 部分,您需要 (1)为您创建映射的函数,或 (2) UserProtectedDetails 的构造函数,它接受一个 User 参数:

UserProtectedDetails(User u) {
    name = u.name;
}

不管怎样,name = u.name 赋值需要在某处进行。

关于.net - 如何将对象列表从一种类型转换为另一种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12018504/

相关文章:

c# - 用于C#的构建工具,类似于Java的maven/gradle

sql - 与表对象的交叉连接传播行(不需要 Table() 函数)

variables - 确定 Tcl 中变量的类型

audio - ffmpeg-AC3到多个输出

wpf - 在双向绑定(bind)中将 IValueConverter 与当前 DataContext 一起使用

c# - 消息正文中定义的错误代码的 AdalServiceException 列表

c# - Log4Net 比 TraceListener 有什么优势?

c# - 防止出现未处理的异常对话框

java - 仅将 java 类实例转换为原始类型