日期:2014-05-17  浏览次数:20462 次

将一个集合或者数组的数据补全
我有一个集合List<int[]> list=new List<int[]>();
这个集合里面我要装的数据 int[] arr=new int[]{月份,工资总额};
如1月份该部门的总额是2000: int[] arr=new int[]{1,2000};(这里面是根据年份去查询数据库里面的数据循环添加进去的)

但是我是根据年份去查询数据库里面的数据 可能某些月份不存在如果不存在

月份要补齐 后面的工资总额为0 

如8月份不存在:int[] arr=new int[]{8,0};

现在我就是要补齐

求一个简单方法,将这个问题解决.

------解决方案--------------------
list = list.Concat(Enumerable.Range(1, 12).Where(x => !list.Select(y => y[0]).Contains(x)).Select(x => new int[] { x, 0})).ToList();
------解决方案--------------------
从数据库里查出的数据不要直接写到集合,月份就12个是固定的,从1-12同查出对比,然后再添加到集合,应该可以吧
------解决方案--------------------
不会啊,y是一个int[],你不是List<int[]>么?y[0]就是第一个元素。
------解决方案--------------------
循环赋值一下不就行了。

不过觉得你这个设计数据结构不合理,用个字典效率肯定更好,或者数据库取出来用,没必要自己缓存。当然关键看你怎么用。