In Perl
print "a" x 3; # aaa
In C#
Console.WriteLine( ??? )
In Perl
print "a" x 3; # aaa
In C#
Console.WriteLine( ??? )
It depends what you need... there is new string('a',3)
for example.
For working with strings; you could just loop... not very interesting, but it'll work.
With 3.5, you could use Enumerable.Repeat("a",3)
, but this gives you a sequence of strings, not a compound string.
If you are going to use this a lot, you could use a bespoke C# 3.0 extension method:
static void Main()
{
string foo = "foo";
string bar = foo.Repeat(3);
}
// stuff this bit away in some class library somewhere...
static string Repeat(this string value, int count)
{
if (count < 0) throw new ArgumentOutOfRangeException("count");
if (string.IsNullOrEmpty(value)) return value; // GIGO
if (count == 0) return "";
StringBuilder sb = new StringBuilder(value.Length * count);
for (int i = 0; i < count; i++)
{
sb.Append(value);
}
return sb.ToString();
}
If you only need to repeat a single character (as in your example) then this will work:
Console.WriteLine(new string('a', 3))
If you need to do this with strings like Tom pointed out, then an extension method will do the job nicely.
static class StringHelpers
{
public static string Repeat(this string Template, int Count)
{
string Combined = Template;
while (Count > 1) {
Combined += Template;
Count--;
}
return Combined;
}
}
class Program
{
static void Main(string[] args)
{
string s = "abc";
Console.WriteLine(s.Repeat(3));
Console.ReadKey();
}
Well in all version of .NET to repeat a string you could always do this
public static string Repeat(string value, int count)
{
return new StringBuilder().Insert(0, value, count).ToString();
}