我有两个对象。
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 方式来做到这一点?
我有两个对象。
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 方式来做到这一点?
有没有办法以 linq 或其他 .net 方式进行?
当然:
List<User> list = ...; // Make your user list
List< UserProtectedDetails> = list
.Select(u => new UserProtectedDetails{name=u.name})
.ToList();
编辑:(作为对评论的回应)如果您想避免使用该{name = u.name}
部分,您需要(1)一个为您进行映射的函数,或者(2)一个UserProtectedDetails
带有User
参数的构造函数:
UserProtectedDetails(User u) {
name = u.name;
}
一种或另一种方式,name = u.name
需要在某处进行分配。
好吧,这可能很简单
var userList = new List<User>();
var userProtectedDetailsList = userList.Select(u =>
new UserProtectedDetails { name = u.name }
)
.ToList();