首页 新闻 会员 周边 捐助

怎样把list集合划分成指定的几个list集合

0
悬赏园豆:20 [已解决问题] 解决于 2018-09-08 15:54

比如我有一个list集合 ,里面有9个元素 ,要把这个集合的元素平均分给5个新的集合 ,怎么分的 ,最后剩余一个就只分一个 ,也就是各个集合的元素个数分别是2.2.2.2.1 如果多出来,就把剩余的都放在最后一个 。 注意: 我用的版本是framework 2.0 linq这些用不了。。。。。。。

Anlien-Bei的主页 Anlien-Bei | 初学一级 | 园豆:48
提问于:2018-09-08 13:48

越来越得靠自己好好思考了

Anlien-Bei 6年前
< >
分享
最佳答案
0

将5个集合放到一个新集合中,当list的集合不为空的时候循环新集合往5个集合添加元素同时从list集合移除元素

收获园豆:20
风行魔狼 | 菜鸟二级 |园豆:487 | 2018-09-08 15:50

nice 就是这个方法

Anlien-Bei | 园豆:48 (初学一级) | 2018-09-08 15:53
其他回答(2)
1

List<string> strList = new List<string>() { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
List<List<string>> list = new List<List<string>>();
int i = 0;
int count = 4;
while (i < strList.Count)
{
List<string> item = new List<string>();
if (i + count >= strList.Count)
{
for (int s = 0; s < strList.Count - i; s++)
{
item.Add(strList[s + i]);
}
list.Add(item);
break;
}
for (int j = 0; j < count; j++)
{
item.Add(strList[j + i] + ",");
}
list.Add(item);
i = i + count;
}

        foreach (var item in list)
        {
            for (int p = 0; p < item.Count; p++)
            {
                Console.Write(item[p]);
            }
            Console.WriteLine("");
        }
Anlien-Bei | 园豆:48 (初学一级) | 2018-09-08 15:54
0

一种比较笨的实现

class Program
{
    static void Main(string[] args)
    {
        var ungroupedList = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        var toalCount = ungroupedList.Count;
        int groupCount = 5;
        int groupItemCount = (int)Math.Ceiling((double)toalCount / groupCount);
        var groupListArray = new List<int>[groupCount];

        for (int i = 0; i < groupCount; i++)
        {
            groupListArray[i] = new List<int>();
            var count = Math.Min(toalCount - i * groupItemCount, groupItemCount);
            groupListArray[i].AddRange(ungroupedList.GetRange(i * groupItemCount, count));
        }

        for (var i = 0; i < groupListArray.Length; i++)
        {
            Console.WriteLine("List" + (i + 1) + ": " + string.Join(",", groupListArray[i]));
        }
    }
}
dudu | 园豆:29568 (高人七级) | 2018-09-08 16:00

string.Join(",", groupListArray[i]) 这个方法好像只适用于字符串吧?

支持(0) 反对(0) Anlien-Bei | 园豆:48 (初学一级) | 2018-09-10 13:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册