说我有一个字符串var s = "123456789"
在哪里
foreach(var c in DivideStr(s, 3)){
Console.WriteLine(c);
}
会打印出来123
, 456
,789
这是一个相当容易用循环和 if 语句完成的问题。但我想以以下方式在 C# 中完成Take
和函数Skip
IEnumerable DivideStr(String s, Int n)
{
var a = s;
while(!a.IsEmpty())
{
yield return a.Take(n)
a = a.Drop(3) // or a.Skip(n)
}
}
这样,如果我有var s = "12345678"
打印输出将是123
, 456
, 和78
问题是上面的代码无法编译。我错过了什么?