gpt4 book ai didi

c# - 用 0 到 9 的数字填充字符串并开始新的直到长度为 50

转载 作者:行者123 更新时间:2023-11-30 13:30:18 26 4
gpt4 key购买 nike

所以我今天看到了 this question。现在我想得更远,想到了以下场景:

string myString = "Hello";
int[] numbersFromZeroToNine = new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

我想将 numbersFromZeroToNine 中的数字添加到 myString(在 0 位置重新开始)直到 myString长度为 50。如果 myString 已经超过 50 个字符,我想打印出前 50 个字符。

我可以通过使用以下几行来实现它:

if (myString.Length >= 50)
myString = myString.Substring(0, 50);
else
{
for (int counter = 0; myString.Length < 50; counter++)
{
if (counter == numbersFromZeroToNine.Count())
counter = 0;
myString += numbersFromZeroToNine[counter];
}
}

Console.WriteLine(myString);
Console.ReadLine();

结果:

Hello012345678901234567890123456789012345678901234

如您所见,我可以通过在 else 中使用 for 循环和 if 语句来完成此操作。但我认为这不是这种情况下最好(和最短)的方法。这就是我现在想问你的问题:是否有更短的解决方案来实现相同的结果?

最佳答案

更简洁,但恐怕可读性较差 Linq 解决方案:

  string prefix = "Hello";
int length = 50;

// Hello012345678901234567890123456789012345678901234
string result = prefix +
new string(Enumerable
.Range(0, length - prefix.Length)
.Select(c => (Char) ('0' + c % 10))
.ToArray());

关于c# - 用 0 到 9 的数字填充字符串并开始新的直到长度为 50,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36794847/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com