首页 > 解决方案 > 了解切片在 python 中的工作原理并使用 C# 实现相同的目的

问题描述

string = "This is a test string. It has 44 characters." #Line1
for i in range(len(string) // 10):                      #Line2
    result= string[10 * i:10 * i + 10]                  #Line3
    print(result)                                       #Line4

我想理解上面的代码,这样我就可以使用 C# 实现同样的事情

据我了解,在 Line2 中:

len(string) 计算上述字符串的长度为 44,除以 10 返回 4,范围(4) 应返回:0,1,2,3 因此for循环将运行 4 次以打印result

我通过在 python 代码中添加以下语句来确认 Line3 的工作原理:

print(string[0:10])
print(string[10:20])
print(string[20:30])
print(string[30:40])

两者的输出是:

这是一个
测试串
G。它有
44 个字符

我在 C# 中尝试了以下代码来实现相同的效果,但没有打印任何内容:

string str = "This is a test string. It has 44 characters.";


            foreach (int i in Enumerable.Range(0, str.Length / 10))
            {
                string result = str[(10*i)..(10*i+10)];
                Console.WriteLine(result);
            }

标签: pythonc#loopsslice

解决方案


这就是您在 C# 中使用以下命令对字符串进行切片的方式Substring

string str = "This is a test string. It has 44 characters.";

foreach (int i in Enumerable.Range(0, str.Length / 10))
{
    var start = 10 * i;
    var end = 10 * i + 10;
    Console.WriteLine(str.Substring(start, end));
}

....但您可能需要调整数字并检查索引/超出范围异常。


推荐阅读