예제 #1
0
        /// <summary>
        /// 返回明细数据.
        /// </summary>
        /// <param name="i"></param>
        /// <param name="j"></param>
        /// <returns></returns>
        public AbstractItem this[int i, int j]
        {
            get
            {
                // 如果检索到固定值,那么返回固定值.
                FixedItem fixItem = FixItemList.FirstOrDefault(p => p.X == i && p.Y == j);
                if (fixItem != null)
                {
                    return(fixItem);
                }

                // 否则返回动态值.
                return(this.DynamicsItemList.First(p => p.X == i && p.Y == j));
            }
        }
        /// <summary>
        /// 初始化 项目单元数据.
        /// </summary>
        /// <param name="result"></param>
        /// <param name="initArray"></param>
        protected void InitBaseItemData(ItemMaster result, int[,] initArray)
        {
            // 取得二维数组的 边长.
            sizeOfArray = Convert.ToInt32(Math.Sqrt(initArray.Length));

            // 遍历二维数组, 填写数据.
            for (int i = 0; i < sizeOfArray; i++)
            {
                for (int j = 0; j < sizeOfArray; j++)
                {

                    if (initArray[i, j] == 0)
                    {
                        // 等于零的情况.
                        DynamicsItem item = new DynamicsItem()
                        {
                            X = i,
                            Y = j,
                        };

                        // 初始化.
                        item.InitDefaultList(9);

                        // 加入 结果列表.
                        result.DynamicsItemList.Add(item);
                    }
                    else
                    {
                        // 非零的情况.
                        FixedItem item = new FixedItem()
                        {
                            X = i,
                            Y = j,
                            IintValue = initArray[i, j],
                        };

                        // 加入 固定结果列表.
                        result.FixItemList.Add(item);
                    }

                }
            }
        }