如何在 C# 中打印字典集合

本文关键字:打印 字典 集合 | 更新日期: 2023-09-27 18:37:22

我正在尝试在这里打印出一个数组/集合。我有一个带有以下代码的类文件来打印文本:

//Display All
    public void Display()
    {
        Console.WriteLine(ID + "'t" + Product + "'t" + Category + "'t" + Price + "'t" + Stock + "'t" + InBasket);
    }

然后,在主要情况下,我尝试使用以下方法将其实际打印到屏幕上:

foreach (KeyValuePair<int, Farm_Shop> temp in products)
        {
            //display each product to console by using Display method in Farm Shop class
            temp.Display();
        }

但是我收到以下错误:

'System.Collections.Generic.KeyValuePair<int,Farm_Shop_Assignment.Farm_Shop>' 
does not contain a definition for 'Display' and no extension method 'Display'
accepting a first argument of type 
'System.Collections.Generic.KeyValuePair<int,Farm_Shop_Assignment.Farm_Shop>' 
could be found (are you missing a using directive or an assembly reference?)

以下是我想打印的实际内容:

products = new Dictionary<int, Farm_Shop>
        {
            { 1, new Farm_Shop(1, "Apple", "Fruit't", 0.49, 40, 'n') },
            { 2, new Farm_Shop(2, "Orange", "Fruit't", 0.59, 35, 'n') }
        };

根据我的理解,这是行不通的,因为我只发送一个要打印的数组/集合,而不是它前面的 int,如果你明白我的意思。

有人可以告诉我如何正确打印它。

非常感谢。谢谢。

如何在 C# 中打印字典集合

Display()Farm_Shop上的一种方法。不能直接在类型为 KeyValuePair<int, Farm_Shop> 的对象上调用它。您应该执行此操作以访问键/值对中的Farm_Shop实例:

foreach (KeyValuePair<int, Farm_Shop> temp in products)
    {
        //display each product to console by using Display method in Farm Shop class
        temp.Value.Display();
    }

或者遍历 Values 属性,因为键不会为您添加太多内容(因为它来自 Farm_Shop 上的属性:

foreach (Farm_Shop temp in products.Values)
    {
        //display each product to console by using Display method in Farm Shop class
        temp.Display();
    }

这将遍历字典中的每个键值对,并获取每个 jey 的值

foreach (产品中的 KeyValuePairtemp)//遍历字典 { Console.WriteLine(temp.值); }

它应该读成这样

foreach (var product in products)
{
  product.Value.Display();
}

现在,您可以通过以下方式使显示方法更易于理解:

public Display()
{
   var out=String.Format("{1}'t{2}'t{3}'t{4}'t{5}",_id,_productName,_categoryName,_this,_that [...]);
   Console.WriteLine(out);
}

您可以覆盖 .对象的 ToString() 方法并调用它,而不是创建一个 Display 方法。 然后在循环中,您可以执行以下操作:

foreach(Farm_Shop item in products.Values)
{
    Console.WriteLine(item.ToString());
}