首页 > 解决方案 > 如何在以捷径或可能以新方式为每个创建集合的同时创建一个集合?

问题描述

因此,如果我有一组动物,并且想将一些属性用于新对象,如下所示:

class Animal{
public string Name {get; set;}
public string TypeOfAnimal {get; set;}
public short Weight {get; set;}
public string Color {get; set;}
}

class Zoo{
 public string AnimalType {get; set;}
 public bool ForAdoption {get; set;}
 public decimal ApproximateWeight {get; set;}
}

var listOfAnimals = List<Animal>();
var myAnimalsCollection = GetAllAnimalsFromDB();

foreach (var animalItem in myAnimalsCollection)
{
   var zooObject= new Zoo {
     Animaltype = animalItem.TypeOfAnimal,
     ApproximateWeight = animalItem.Weight,
     ForAdoption = false
    };

   listOfAnimals.Add(zooObject);
}

就像初始化一个集合,然后在创建一个新对象后将它们一一添加。我想知道现在 C# 中是否有一种通用的方法来简化代码?

标签: c#

解决方案


您可以在 c# 中使用 LINQ。我还解决了您给定问题中的一些问题。

class Zoo
{
   public string AnimalType { get; set; }
   public bool ForAdoption { get; set; }
   public decimal ApproximateWeight { get; set; }
}

class Animal
{
  public string Name { get; set; }
  public string TypeOfAnimal { get; set; }
  public short Weight { get; set; }
  public string Color { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        var myAnimalsCollection = GetAllAnimalsFromDB();

        var listOfAnimals = (from item in myAnimalsCollection
                             select new Zoo
                             {
                                 AnimalType = item.TypeOfAnimal,
                                 ApproximateWeight = item.Weight,
                                 ForAdoption = false
                             }).ToList();
    }
}

推荐阅读