将对象列表存储在另一个对象中的最佳做法是什么

时间:2016-04-10 13:59:46

标签: c# list object

我有一个名为product的对象和一个名为products的对象。

class product
{
    public int Id { get; set; }
    public string Name { get; set; }
}

class products
{
    public List<product> product { get; set; }
}

在对象products属性product中,我想存储多个产品。我是如何在小型原型解决方案中完成的:

    static void Main(string[] args)
    {
        products productlist = new products();
        List<product> listofproduct = new List<product>();

        for (int i = 0; i < 10; i++)
        {
            product p = new product();
            p.Id = i;
            p.Name = "product with id = " + i.ToString();

            listofproduct.Add(p);
        }

        productlist.product = listofproduct;

        foreach (product prod in productlist.product)
        {
            Console.WriteLine(prod.Name);
        }

        Console.ReadKey();
    }
}

这是解决这个问题的好方法吗?或者你在面向对象编程中以另一种方式做到了吗?

2 个答案:

答案 0 :(得分:1)

struct Product
{
   public int Id { get; set; }
   public string Name { get; set; }

   public Product(int id, string name)
   {
     this.Id=id;
     this.Name=name;
   }
   public void WriteInfo()
   {
      Console.WriteLine("Id: {0}, Id); 
      Console WriteLine("Name: {0}", Name)
   }

}

 static void Main(string[] args)
    {
        var productList=new LinkedList<Product>;
        productList.AddLast(new Product(1,Apple));
        productList.AddLast(new Product(2,Banana));

        foreach(var product in productList)
        {
           product.WriteInfo()
        }
    }

答案 1 :(得分:1)

如果您不想使用LINQ并保留当前结构,可以消除在循环中创建完整实例的需要,并且需要{{1} }。

listofproduct

但是,编写代码的最佳做法应该是:

  

对我来说,维护和理解此代码的最简单方法是什么?

因此,如果您在问题中编写代码的方式使您感到舒适,那么请务必执行此操作。但是, 强烈 建议您遵循MSDN为Capitalization Conventions制定的约定。