小乾500 2021-03-24 09:14 采纳率: 0%
浏览 77

学习c#的时候为什么用foreach循环遍历二维集合的时候报这个错误。。请教大佬指点

class WareHouse   //仓库类
    {
        //添加货物的货架,货架上放商品(为了分类)
        List<List<ProductFather>> PF = new List<List<ProductFather>>();
        //构造函数中进行货架的添加
        public WareHouse()
        {
            PF.Add(new List<ProductFather>());
            PF.Add(new List<ProductFather>());
            PF.Add(new List<ProductFather>());
            PF.Add(new List<ProductFather>());
        }
        /// <summary>
        /// 展示物品
        /// </summary>
        public void ShowPors()
        {
            foreach (var item in PF)
            {
                
                Console.WriteLine("我们超市有:{0}\t 库存{1}个\t 每个{2}元",item[0].Name,item[0].Count,item[0].Price);//这里报错
            }
        }
        /// <summary>
        /// 进货
        /// </summary>
        /// <param name="strType">进货的类型</param>
        /// <param name="count">一次性进货的数量</param>
        public void AddPros(string strType, int count)
        {
            for (int i = 0; i < count; i++)
            {
                switch (strType)
                {
                    case "Samsung":
                        PF[0].Add(new SamSung(1000, "三星手机", count, Guid.NewGuid().ToString()));
                        break;
                    case "Acer":
                        PF[1].Add(new Acer(2000, "鸿基笔记本", count, Guid.NewGuid().ToString()));
                        break;
                    case "Banana":
                        PF[2].Add(new Banana(5, "香蕉", count, Guid.NewGuid().ToString()));
                        break;
                    case "JiangYou":
                        PF[3].Add(new JiangYou(10, "酱油", count, Guid.NewGuid().ToString()));
                        break;
                    default:
                        break;
                }
            }
        }
//这里是超市类里面添加货物的地方
class SuperMarket
    {
        WareHouse WH = new WareHouse();
        ProductFather[] _pf;
        public SuperMarket()
        {
            WH.AddPros("Acer", 1000);
            WH.AddPros("Banana", 1000);
            WH.AddPros("JiangYou", 1000);
            WH.AddPros("Sansung", 1000);
        }//超市进货
    }

 

  • 写回答

3条回答 默认 最新

  • SDHU 2021-03-24 09:58
    关注
    List<List<ProductFather>> PF = new List<List<ProductFather>>();

    你这个是嵌套的list,一个集合里包了若干个集合,你遍历集合的时候只遍历了第一层,还需要遍历第二层

    foreach (var item in PF)
      {
                    
           foreach(var prodouct in item)
        {
           Console.WriteLine("我们超市有:{0}\t 库存{1}个\t 每个{2} 元",prodouct[0].Name,item.Count,prodouct[0].Price);
        } 
       }
    评论

报告相同问题?

悬赏问题

  • ¥15 vscode调试编译找不到gcc,只有cl,但是检查cmd是对的,控制面板的路径也更改了
  • ¥15 FlycoRoundView引入失败
  • ¥20 access中怎么分割分别获取一下图中的值
  • ¥15 keras_tcn已经安装成功,还是显示ModuleNotFoundError: No module named 'keras_tcn'
  • ¥15 类图中关联与聚合的区别
  • ¥15 ENVI高分五号去除云层的方法
  • ¥15 16进制数据如何得到奇偶校验位
  • ¥15 求合并两个字节流VB6代码
  • ¥15 Pyqt 如何正确的关掉Qthread,并且释放其中的锁?
  • ¥30 网站服务器通过node.js部署了一个项目!前端访问失败