C# 如何按字符数拆分字符串并在每个字符串的开头添加自定义字符串

C# 如何按字符数拆分字符串并在每个字符串的开头添加自定义字符串,c#,string,split,ienumerable,C#,String,Split,Ienumerable,例如,我有一些字符串,这个字符串的长度=2900 如何将该字符串除以部分(长度255)并为每个部分添加“part{number}”+分割字符串 输入时:字符串(2900长度) 输出:包含12个元素的列表,每个元素应=部分{number}+子字符串,长度小于255 我试着这样做,但当我有9个以上的部分时,我就有麻烦了 public static IEnumerable<string> SplitJobComment(string str, int chunkLength)

例如,我有一些字符串,这个字符串的长度=2900 如何将该字符串除以部分(长度255)并为每个部分添加“part{number}”+分割字符串

输入时:字符串(2900长度) 输出:包含12个元素的列表,每个元素应=部分{number}+子字符串,长度小于255


我试着这样做,但当我有9个以上的部分时,我就有麻烦了

public static IEnumerable<string> SplitJobComment(string str, int chunkLength)
        {
            var partNumber = 1;
            var partNumberTemplate = $"Part {partNumber} ";
            chunkLength -= partNumberTemplate.Length;

            for (var i = 0; i < str.Length; i += chunkLength)
            {
                if (chunkLength + i > str.Length)
                {
                    chunkLength = str.Length - i;
                }

                partNumberTemplate = $"Part {partNumber} ";
                partNumber++;

                yield return partNumberTemplate + str.Substring(i, chunkLength);
            }
        }
public静态IEnumerable SplitJobComment(string str,int chunkLength)
{
var partNumber=1;
var partNumberTemplate=$“Part{partNumber}”;
chunkLength-=零件号模板长度;
对于(变量i=0;istr.Length)
{
chunkLength=str.Length-i;
}
partNumberTemplate=$“Part{partNumber}”;
partNumber++;
产量返回零件号模板+str.Substring(i,chunkLength);
}
}

考虑到真正的问题,正如我所假设的,是partNumberTemplate的长度在partNumber>9时发生变化,一种可能的解决方案是

var partNumberTemplate = $"Part {partNumber:D2} ";

{partNumber:D2}
总是使用2位数字格式化数字。

预期的输入和输出在这里会有很大帮助。
但是当我有9个以上的零件时我会遇到麻烦。
什么麻烦?“但是当我有9个以上的零件时我会遇到麻烦”:也许你可以使用
var partNumberTemplate=$“part{partNumber:D2}”,但我只能假设您的问题是由于
partNumberTemplate
的长度在
partNumber
>9@Marco,是的,那是我的问题,我怎样才能解决呢?