只是我正在调查的好奇心。
问题是:简单地重复(乘法,有人会说)字符串/字符n times.
我知道有可枚举.重复为了这个目标,但我试图在没有它的情况下做到这一点。LINQ在这种情况下似乎毫无用处,因为在query like
from X in "s" select X
the string“s”正在被探索,所以 X 是char。同样是与扩展方法,因为例如“s”。总计的(blablabla) 将再次仅作用于字符 's',而不作用于字符串本身。为了重复字符串,需要一些“外部”的东西,所以我想lambdas and 代表们,但如果不声明一个变量来分配委托/lambda 表达式,则无法完成此操作。
所以就像定义一个函数并内联调用它一样:
( (a)=>{return " "+a;} )("a");
or
delegate(string a){return " "+a}(" ");
会给出“没有名字”错误(所以无递归,AFAIK,甚至通过传递一个可能的 lambda/委托作为范围),最终由于C#的局限性甚至无法创建。
可能是我从错误的角度看待这件事。有任何想法吗?
这只是一个实验,我不关心性能,内存使用......只是它是一条线并且有点自治。也许有人可以用 Copy/CopyTo 做一些事情,或者将其转换到其他集合,我不知道。反射也被接受。
要重复一个字符 n 次你不会使用Enumerable.Repeat
只是这个字符串构造函数 http://msdn.microsoft.com/en-us/library/xsa4321w.aspx:
string str = new string('X', 10);
要重复一个字符串,我不知道有什么比使用更好的了string.Join
and Enumerable.Repeat
string foo = "Foo";
string str = string.Join("", Enumerable.Repeat(foo, 10));
编辑:你可以使用string.Concat
相反,如果您不需要分隔符:
string str = string.Concat( Enumerable.Repeat(foo, 10) );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)