在VB6和C#中,如何拥有多个字符串?

5

有没有一条命令可以将一个字符串复制成多个相同的字符串或字符。SQL中有一个replicate函数,例如可以将一个空格复制多次:

replicate(' ', 10000) -- will make 10k spaces.  

在VB6和C#中是否有类似的命令?

哈哈,是啊,我也在用那个,但我是老派的。 - RetroCoder
2个回答

14

在 C# 中:

string s = new string(' ', 10000);

在VB.NET中:

Dim s = New String(" ", 10000)

在VB6中:

s = String$(10000, " ")

2
应该注意到,C# 代码仅适用于字符,而不是字符串。 - Paul Phillips
准确地说,它使用字符符号(' '),而不是使用字符串符号(" ")的VB6和VB.NET代码。 - GianT971
1
在VB6中,您还可以使用Space$(10000) - userx
1
是的,我忘了那个,但 Space$ 只是用来制作空格的。 - GianT971
2
VB.NET 代码仅适用于字符,而不是字符串。只有在关闭严格模式时才能使用字符串,然后将被隐式转换为字符。使用 New String(" "C, 10000) 来开启严格模式。 - Guffa
你也可以使用 s = String$(10000, n) 来复制一个 ASCII 码为 n 的字符。 - Mark Bertenshaw

2
为了重复一个实际的字符串,而不仅仅是一个字符 (代码对于C#和VB.Net相同):
//Repeat "asd" 100 times
String.Join("", Enumerable.Repeat("asd", 100).ToArray())

1
注意:在 .Net 4.0 中,.ToArray() 调用是不必要的,因为 String.Join() 现在接受一个 IEnumerable<string> - BlueRaja - Danny Pflughoeft
不错。这似乎适用于字符串。这个也可以:new String(new char[] {' ', 'X', 'O'}, 0, 33332) - RetroCoder
Enumerable.Repeat<String>("asd", 100).ToString(); // 这在 .net 4.0 中可行 - RetroCoder
1
@RetroCoder:实际上,这两个都不会起作用。尝试运行它们以查看原因 :) - BlueRaja - Danny Pflughoeft
我需要使用Join函数...即Enumerable.Repeat<String>("abc", 100).Join(这里填写参数...)来将所有数组连接在一起。 - RetroCoder
Console.WriteLine(String.Join("", Enumerable.Repeat<String>("asd", 100))); 将以上代码翻译为中文。 - RetroCoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接