代码之家  ›  专栏  ›  技术社区  ›  Neo

如何使用LINQ C或在泛型方法内为任何一个或两个属性赋值?

  •  0
  • Neo  · 技术社区  · 6 年前
    public class Company
    {
        public int id { get; set; }
        public int Name { get; set; }
        public int Address{ get; set; }
    
    }
    
    List<Company> listofCompany = new List<Company>();
    

    listofCompany 已经填充并且有一些数据。我要替换它 id Name 使用LINQ

    我可以用下面的foreach来完成

     foreach (var item in listofCompany )
                            {
                                item.id= 123;
                                item.Name= 999;
                            }
    

    但是有没有更好的方法不用foreach来完成它,因为我的foreach代码在其他方法中,这是一个如下所示的通用方法-

    MyData<T>(List<T> anylist){}
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Ousmane D.    6 年前

    假设您可以生成新的 Company 对象,然后您可以使用 Select 随着 ToList .

    listofCompany.Select(x => new Company 
                   {  Id = 123, 
                      Name = 999, 
                      Address = x.Address
                   }).ToList();
    

    否则,如果您想在适当的位置修改对象,那么您最好使用当前的方法。

    另一方面,为什么 Name Address 表示为 int ?看起来很奇怪,通常用 string .