我有两个对象。
class User{
public int id{get;set;}
public string name{get;set;}
}
class UserProtectedDetails{
public string name{get;set;}
}
如何将List<User>
转换为List<UserProtectedDetails>
?
我知道如何在反射中做到这一点,但无论如何在Linq或其他.NET方式中做到这一点?
答案 0 :(得分:3)
无论如何都要用linq或其他.net方式吗?
不确定
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
任务需要在某处进行。
答案 1 :(得分:0)
嗯,它可以像
一样简单var userList = new List<User>();
var userProtectedDetailsList = userList.Select(u =>
new UserProtectedDetails { name = u.name }
)
.ToList();