c# - 如何将字符串列表拆分为更小的字符串列表块
问题描述
我试图解决的问题如下:
我有一个List<string>
,我们称之为“ initialList
”。
我需要与该列表中的所有字符串进行交互,所以我必须枚举它。但是,问题来了,每次交互时我都必须取其中的“x”个元素。
x
是一个new Random().Next(_minValue, _maxValue);
所以每次都是随机的。
这是我想做的一个真实例子:
假设列表initialList
包含以下元素:
test, test2, test3, test4, test5, test6, test7, test8, test9, test10, test11, test12
.
我想遍历所有元素并一次获取 2-3 个字符串并保存一个包含组合字符串的新字符串。
因此,一种可能的输出(因 Random 返回的值而异)是:
{ "test", "test1", "test2" },
{ "test3", "test4" },
{ "test5", "test6" },
{ "test7", "test8" },
{ "test9", "test10", "test11" },
{ "test12" }
我想做什么:
for (var i = 0; i < _users.Count; i += _random.Next(_minMentions, _maxMentions + 1))
{
var mergedString = ?? // get the values of the next _random.Next(_minMentions, _maxMentions + 1) strings
}
我在想,但是如果我在循环之外生成随机数,那么它总是一样的。我希望字符串的数量每次都是随机的。
另外,考虑通过选择具有索引的元素来执行 LINQ,但不知道如何从那里开始。
任何帮助表示赞赏,谢谢。
解决方案
希望这会给你一个想法。
var mergedList = new List<string>();
for(int i = 0; i < initialList.Count; ){
var n = _random.Next(2,4);
mergedList.Add(initialList.Skip(i).Take(n).Aggregate((x,y) => x + y));
i += n;
}
推荐阅读
- python - 使用模型作为特征提取器时,使用深度学习模型 (DenseNet-121) 的哪一层作为输出
- php - Laravel 8 - 无法从数据库中获取数据
- pine-script - Pine 脚本:无法使用参数调用“plotshape”
- javascript - 从浅复制对象中删除属性
- c++ - 为什么程序在 main 中看不到我的名为“geneticLibrary/geneticProgram.hpp”的库?
- c# - 如何计算对象列表中的项目?
- c++ - 当派生类和基类具有不同类型的参数时,我在继承方面遇到了一些严重的问题,如下所示:
- django - 我应该在我的 django 应用程序中使用 select_for_update 和 postgresql 数据库吗?
- javascript - 如何使用基于 id 的分组数据从另一个数组创建一个数组?
- python - 使用 django 在 Qrcode 中的用户名和密码