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

时间:2012-08-18 12:21:45

标签: .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>

我知道如何在反射中做到这一点,但无论如何在Linq或其他.NET方式中做到这一点?

2 个答案:

答案 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();