Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将对象类型的值存储在数组中并调用它们(C#)?_C#_Arrays_Loops_Sorting_For Loop - Fatal编程技术网

如何将对象类型的值存储在数组中并调用它们(C#)?

如何将对象类型的值存储在数组中并调用它们(C#)?,c#,arrays,loops,sorting,for-loop,C#,Arrays,Loops,Sorting,For Loop,我上过以下课程: public class Object { public string Name { get; set; } public int Price { get; set; } } 我创建了一个新的对象数组: 对象[]对象=新对象[1] 我给它赋值,Object[0]=newobject(){Name=“T”,Price=32} 但是,当我尝试打印值时,使用foreach如下所示: foreach(var a in Object)

我上过以下课程:

public class Object
    {
        public string Name { get; set; }
        public int Price { get; set; }
    }
我创建了一个新的对象数组:

对象[]对象=新对象[1]

我给它赋值,Object[0]=newobject(){Name=“T”,Price=32}

但是,当我尝试打印值时,使用foreach如下所示:

foreach(var a in Object) 
Console.WriteLine(a);
我得到Namespace.Object


如何修复此问题并获得每行的名称和价格的实际值并存储其多个值?

方法在
对象
类中打印实例,并在打印时将对象转换为
字符串

//First of all, give meaningful name
public class Product
{
   public string Name { get; set; }
   public int Price { get; set; }

    public override string ToString()
    {
        return $"Price of product {this.Name} is {this.Price}";
    }
}
现在只需迭代每个产品
Console.WriteLine()
将在内部调用您在
Product
类中重写的
ToString()

 //Here Products is array of Product object
 foreach(var product in Products) 
    Console.WriteLine(product);
Console.WriteLine()
将尝试将
a
转换为字符串,然后调用
a.ToString()

如果需要,您可以:

公共类对象
{
公共字符串名称{get;set;}
公共整数价格{get;set;}
公共重写字符串ToString()
{
返回$“[Name:{Name},Price:{Price}]”;
}
}

首先,我建议找一个比
对象更好的名称。但是基本上你需要重写
ToString
方法。
控制台。WriteLine
将在内部调用
ToString
,所以你不必显式调用它。哦,我没有意识到。谢谢@juharr每天都是上学的日子;)