首页新闻找找看学习计划

如何将一个LIST集合 切割成若干个?

0
悬赏园豆:5 [已解决问题] 解决于 2014-08-28 15:50

LIST《String》 =new ...

数据如下:
1 2 3  null  4 5 null null null null null null null null 8 null 9 10 21  12

我希望切割成
1 2 3 4 5

8 9 10 21 12
测试数据2

null  null  1 null 2 null 3  null  4 5 null null null null 8 null 9 10 21  12 null null null null null 78 79 null 20 ......

问题补充:

每个数组的长度都是不固定的 任意长度 有的长 有的短.....

也许是我没有表达清楚

自己写出来的代码  下午折腾出来的

//获取A标签区域
            //根据A标签间距 把A标签列表切割成若干个区域
            //然后获取密度最大的一个区域
            //获取A标记权重最大的区域
            int KeyQ = 0;

            int Key = 0;
            Dictionary<int, List<FlipObject>> Dlist = new Dictionary<int, List<FlipObject>>();
            List<FlipObject> listM = new List<FlipObject>();
            for (int i = 0; i < listhref.Count; i++)
            {
                if (listhref[i] != null)
                {
                    listM.Add(listhref[i]);
                    Key = i;
                    if (i == (listhref.Count - 1))
                    {
                        if ((i - Key) > Spacing && Key != 0 && listM.Count > 0)
                        {
                            Dlist.Add(i, listM);
                            if (KeyQ <= listM.Count)
                            {
                                KeyQ = i;
                            }
                            listM = new List<FlipObject>();
                        }//end if
                    }//end if
                }//end if
                else
                {
                    if ((i - Key) > Spacing && Key != 0 && listM.Count > 0)
                    {
                        Dlist.Add(i, listM);
                        if (KeyQ <= listM.Count)
                        {
                            KeyQ = i;
                        }
                        listM = new List<FlipObject>();
                    }//end if
                }//end else
            }
            if (Dlist.Count > 0)
            {
                listM = Dlist[KeyQ];
            }//end if
            return listM;
落幕残情的主页 落幕残情 | 初学一级 | 园豆:9
提问于:2014-08-28 13:06
< >
分享
最佳答案
0

是要把null的元素删除?还是象你那样的删除null后5个元素一组?

删除null:

list.Where(x=>x!=null).ToList();//使用了Linq。

 

//以下不使用LinQ

int i = 0;

while(i < list.Length)

{

if(list[i] == null)

{

list.RemoveAt(i);

continue;

}

i++;

}

 

至于5个一组,这个应该简单了吧?

收获园豆:5
519740105 | 大侠五级 |园豆:5810 | 2014-08-28 13:16

不明白你究竟要做什么。删除null元素很简单,切割也不难的,难的是你的切割条件是什么?你要说清楚啊。

519740105 | 园豆:5810 (大侠五级) | 2014-08-28 13:21
其他回答(8)
0

。。什么叫切割?!!

如果想输出不是 null 的值 就foreach 判断 当前的item 不为null 就可以了!

天真浪浪 | 园豆:950 (小虾三级) | 2014-08-28 13:11

“大侠”这只是其中一种情况,我想要的就是  3  null  4 之间的空  然后继续获取

直接分割成2个数组   二不是单纯的输出 


支持(0) 反对(0) 落幕残情 | 园豆:9 (初学一级) | 2014-08-28 13:13
0

条件是什么?去除null然后五个分成一组?

欺世 | 园豆:2 (初学一级) | 2014-08-28 13:17

都是大神..比不得

支持(0) 反对(0) 落幕残情 | 园豆:9 (初学一级) | 2014-08-28 15:35
0

list = list.Where(item => item != null).ToList();
IList<string> list1 = list.Take(5).ToList();
IList<string> list2 = list.Skip(5).Take(5).ToList();

单恋 | 园豆:678 (小虾三级) | 2014-08-28 13:19

都是大神..比不得

支持(0) 反对(0) 落幕残情 | 园豆:9 (初学一级) | 2014-08-28 15:35
0

楼主表达能力真的比开发能力还差!

BruceGoGo | 园豆:34 (初学一级) | 2014-08-28 13:35

都是大神..比不得

支持(0) 反对(0) 落幕残情 | 园豆:9 (初学一级) | 2014-08-28 15:35
0

连自己的需求是什么都不知道.上次给另一个人提过这个建议但他没有听进去,

你把你这个需求写下来,当你能写下来了之后再想别的

吴瑞祥 | 园豆:28731 (高人七级) | 2014-08-28 13:50

都是大神..比不得

支持(0) 反对(0) 落幕残情 | 园豆:9 (初学一级) | 2014-08-28 15:34
0

把你的业务需求说出来,我觉得是思路问题

Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-08-28 14:50

都是大神..比不得

支持(0) 反对(0) 落幕残情 | 园豆:9 (初学一级) | 2014-08-28 15:34
0

我这几天就是被两个完全不懂得表达的人各种折磨...

必须在QQ上翻来覆去的说两个小时才能把类似这样的问题说清楚。

所以原谅楼主吧,不会表达需求和不会分析需求的人,比比皆是,也许这就是代沟吧。

爱编程的大叔 | 园豆:29788 (高人七级) | 2014-08-28 15:05

都是大神..比不得

支持(0) 反对(0) 落幕残情 | 园豆:9 (初学一级) | 2014-08-28 15:34
0

不明觉厉

小尧弟 | 园豆:500 (菜鸟二级) | 2014-08-28 15:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册