首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

不规则数据求和求步骤

2012-12-28 
不规则数据求和求方法一共 8个 级别编号:15 2434578 (不可改变排序)数量:48 48 36 36 36 36 36顺序是固定

不规则数据求和求方法
一共 8个 级别
编号:15 24  3  4  5  7  8 (不可改变排序)
数量:48 48 36 36 36 36 36

顺序是固定的  按照顺序排列的
求2个 编号 这间 数量和
比如
TextBox1 = 15
TextBox2 = 4
sum = 48+48+36+36 
[解决办法]


    /// <summary>
    /// 定义一个结构,将编号和index关系起来
    /// </summary>
    struct NumberIndex
    {
        public int index;
        public int number;

        public NumberIndex(int index, int number)
        {
            this.index = index;
            this.number = number;
        }
    }

                    static void Main(string[] args)
        {
            List<NumberIndex> list=new List<NumberIndex>();
            NumberIndex numberIndex=new NumberIndex(0,15);
            list.Add(numberIndex);
            numberIndex=new NumberIndex(1,24);
            list.Add(numberIndex);
            numberIndex=new NumberIndex(2,3);
            list.Add(numberIndex);
            numberIndex=new NumberIndex(3,4);
            list.Add(numberIndex);
            numberIndex=new NumberIndex(4,5);
            list.Add(numberIndex);
            numberIndex=new NumberIndex(5,6);
            list.Add(numberIndex);
            numberIndex=new NumberIndex(6,7);
            list.Add(numberIndex);
            numberIndex=new NumberIndex(7,8);
            list.Add(numberIndex);
            
            Dictionary<NumberIndex,int> dic = new Dictionary<NumberIndex,int>();
            dic.Add(list[0],48);
            dic.Add(list[1],48);
            dic.Add(list[2],36);


            dic.Add(list[3],36);
            dic.Add(list[4],36);
            dic.Add(list[5],36);
            dic.Add(list[6],36);
            dic.Add(list[7],36);

            KeyValuePair<NumberIndex, int> item = dic.FirstOrDefault(c => c.Key.number == 14);
            int start = item.Key.index;
            item = dic.FirstOrDefault(c => c.Key.number == 4);
            int end = item.Key.index;

            int result=0;
            for (int i = 0; i < end - start + 1; i++)
            {
                KeyValuePair<NumberIndex, int> subItem = dic.FirstOrDefault(c => c.Key.index == i);
                result += subItem.Value;
            }
        }

热点排行