/// <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); } } } }