c# – 用0到9之间的数字填充字符串并开始新的直到长度为50
发布时间:2020-12-15 23:48:02 所属栏目:百科 来源:网络整理
导读:所以今天我见过 this question.现在我想了一下,想出了以下场景: string myString = "Hello";int[] numbersFromZeroToNine = new[] { 0,1,2,3,4,5,6,7,8,9 }; 我想将numbersFromZeroToNine中的数字添加到myString(在0位重新启动),直到myString的长度为50.如
所以今天我见过
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(); 结果:
如你所见,我可以在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()); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |