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

c集合初始值设定项foreach

  •  6
  • Watson  · 技术社区  · 8 年前

    是否有可能在C中执行类似于以下的操作?

    var tigerlist = new List<Tigers>(){ Tail = 10, Teeth = 20 };
    
    var tigers_to_cats_approximation = new List<Cat>()
    {    
         foreach (var tiger in tigerlist)
         {                 
               new Cat()
               {
                   Tail = tiger.Tail / 2,
                   Teeth = tiger.Teeth / 3,
                   HousePet = true,
                   Owner = new Owner(){ name="Tim" }
               }
         }
    }
    

    我正在做一些XML API,传入的请求对象与需要传出的响应对象类似。如果可能的话,上面的内容会非常方便;比自动映射器要方便得多。

    1 回复  |  直到 8 年前
        1
  •  8
  •   Ousmane D.    8 年前

    你可以使用 Select 条款与 ToList() :

    var tigers_to_cats_approximation = 
          tigerlist.Select(tiger => new Cat() { 
                         Tail = tiger.Tail / 2, 
                         Teeth = tiger.Teeth / 3, 
                         HousePet = true, 
                         Owner = new Owner(){name="Tim"} })
                   .ToList();