C# 在另一个对象中存储对象列表的最佳实践是什么

C# 在另一个对象中存储对象列表的最佳实践是什么,c#,list,object,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; } } 这是解决这个问题的好办法吗?还是在面向对象编程中用另一种方式实现?您可以通过以下方式简化代码: productl

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

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

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

这是解决这个问题的好办法吗?还是在面向对象编程中用另一种方式实现?

您可以通过以下方式简化代码:

productlist.product = Enumerable.Range(0, 10)
                                .Select
                                (
                                     id => new product 
                                     { 
                                         id = id, 
                                         name = $"product with id = {id}" 
                                     }
                                ).ToList();
实际上,您可以用多种方式表达相同的代码,但是您已经在代码中实现的
for
循环是可以的

如果您需要一些建议,应遵循.NET编码惯例:

  • 带pascal外壳的类:
    产品
  • 带驼峰大小写的变量:
    productList
    <代码>产品列表
  • 产品集合应该是复数标识符,属性以pascal大小写:
    products

您可以通过以下方式简化代码:

productlist.product = Enumerable.Range(0, 10)
                                .Select
                                (
                                     id => new product 
                                     { 
                                         id = id, 
                                         name = $"product with id = {id}" 
                                     }
                                ).ToList();
实际上,您可以用多种方式表达相同的代码,但是您已经在代码中实现的
for
循环是可以的

如果您需要一些建议,应遵循.NET编码惯例:

  • 带pascal外壳的类:
    产品
  • 带驼峰大小写的变量:
    productList
    <代码>产品列表
  • 产品集合应该是复数标识符,属性以pascal大小写:
    products
结构产品
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共产品(int-id,字符串名称)
{
这个.Id=Id;
this.Name=Name;
}
public void WriteInfo()
{
WriteLine(“Id:{0},Id);
控制台写入线(“名称:{0}”,名称)
}
}
静态void Main(字符串[]参数)
{
var productList=新链接列表;
productList.AddLast(新产品(1,苹果));
productList.AddLast(新产品(2,香蕉));
foreach(产品列表中的var产品)
{
product.WriteInfo()
}
}
结构产品
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共产品(int-id,字符串名称)
{
这个.Id=Id;
this.Name=Name;
}
public void WriteInfo()
{
WriteLine(“Id:{0},Id);
控制台写入线(“名称:{0}”,名称)
}
}
静态void Main(字符串[]参数)
{
var productList=新链接列表;
productList.AddLast(新产品(1,苹果));
productList.AddLast(新产品(2,香蕉));
foreach(产品列表中的var产品)
{
product.WriteInfo()
}
}

如果您不想使用
LINQ
并保持当前结构,您可以不必在循环中创建完整实例,也不必使用
listofproduct

for (int i = 0; i < 10; i++) {
    productlist.product.Add(new product {
        p.Id = i;
        p.Name = "product with id = " + i.ToString();
    });
}
for(int i=0;i<10;i++){
productlist.product.Add(新产品){
p、 Id=i;
p、 Name=“id为的产品=”+i.ToString();
});
}
但是,编写代码的最佳实践应该是:

维护和理解此代码的最简单方法是什么


因此,如果您在问题中编写代码的方式是什么让您感到舒适,那么请务必这样做。但是,我强烈建议您遵循MSDN为提供的约定。

如果您不想使用
LINQ
并保持当前结构,您可以不必在循环中创建完整实例,也不必使用
listofproduct

for (int i = 0; i < 10; i++) {
    productlist.product.Add(new product {
        p.Id = i;
        p.Name = "product with id = " + i.ToString();
    });
}
for(int i=0;i<10;i++){
productlist.product.Add(新产品){
p、 Id=i;
p、 Name=“id为的产品=”+i.ToString();
});
}
但是,编写代码的最佳实践应该是:

维护和理解此代码的最简单方法是什么


因此,如果您在问题中编写代码的方式是什么让您感到舒适,那么请务必这样做。但是,我强烈建议您遵循MSDN为制定的约定。

我投票将此问题作为非主题关闭,因为它属于打开状态。我投票将此问题作为非主题关闭,因为它属于打开状态。我将为此使用
struct
。不,我不会使用它。我会为此使用
struct
。不,我不会用的。