【发布时间】:2021-05-30 17:34:20
【问题描述】:
如何找到 n 和更多 'b' 字符的组并将它们放入新列表中?
组 - 我想找到的 n 'b' 的数量。
示例:
List<char> charlist = new List<char>() {
'b', 'a', 'b', 'b', 'b', 'a', 'b', 'b', 'b', 'b'
};
我想将 所有 'b' 放入连续重复 3 次或更多次 的新数组中
结果:
列表中的 'b' 总数 = 8
添加到数组 = 7(3 和 4 项组合);
List<char> newCharList = new List<char>() {'b', 'b', 'b', 'b', 'b', 'b', 'b'};
【问题讨论】:
-
那么你只想要
char[] charArray = charlist.Where(c == 'b').ToArray();? -
@John - 不,看来他只想要 3 个
bs 的组。输入有 7 个bs,但输出有 6 个。 -
OP:什么构成了一个团队?它总是 3 人一组,还是 2+
b字符的所有实例都被视为组? -
是的,现在清楚了。也许他们会重新打开它,以便有人可以发布答案。不过,引用的链接应该对您有所帮助。只需创建一个
List<char>以添加相邻的bs ONLY。 -
如果它实际上只是字符并且没有更复杂的东西,我可能会将字符数组转换为字符串并使用正则表达式:
var ms = Regex.Matches(new string(array), "b{3,}")然后将匹配项粘在一起或按顺序处理它们的字符,例如foreach(char c in string.Join("", ms.Select(m => m.Grous[0].Value))