我正在尝试在不同类型的列表对象中复制一个数据库对象的列表。 有没有简短有效的方法呢?
public class User
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public int MobileNo { get; set; }
}
public Username
{
public string Name { get; set; }
}
List<User> user = new List<User>();
List<Username> nameList = new List<Name>();
user = db.User();
foreach(var user in user)
{
Username name = new Name();
name.Name = user.UserName;
nameList.Add(name);
}
是否可以将一个列表复制到另一个列表而不进行循环?
答案 0 :(得分:1)
我担心循环是真正唯一的答案。有各种方法可以做到这一点,而不是一个基本的for loop
与一些语法糖,但这几乎是它。您可以查看映射库,例如AutoMapper,但仍需要配置。
替代方案包括LINQ,或者只是编写映射方法
var mapped = collection.Select(c => new Username() { Name = c.Username }).ToList()
答案 1 :(得分:0)
您可以使用Projection:
nameList = user.Select(u => u.UserName).ToList();