如何在不同类型的列表对象中复制数据库对象列表?

时间:2016-05-16 09:52:02

标签: c# sql-server

我正在尝试在不同类型的列表对象中复制一个数据库对象的列表。 有没有简短有效的方法呢?

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);
}

是否可以将一个列表复制到另一个列表而不进行循环?

2 个答案:

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