我有一个我发送到队列的字符串列表.我需要拆分列表,以便最终列出一个列表,其中每个列表包含一个最大(用户定义的)数量的字符串.所以例如,如果我有一个列表,具有以下A,B,C,D,E,F,G,H,I和列表的最大大小是4,我想要列出一个列表,第一个列表项包含:A,第二个列表有:E,最后一个列表项包含:I.我查看了“TakeWhile”函数,但不知道是否这是最好的方法.有人得到了解决方案吗?
解决方法
您可以设置列表< IEnumerable< string>>然后使用Skip和Take来分割列表:
IEnumerable<string> allStrings = new[] { "A","B","C","D","E","F","G","H","I" }; List<IEnumerable<string>> listOfLists = new List<IEnumerable<string>>(); for (int i = 0; i < allStrings.Count(); i += 4) { listOfLists.Add(allStrings.Skip(i).Take(4)); }
现在listOfLists将包含列表的列表.