只是我正在调查的好奇心。
问题:简单地重复(相乘,有人会说)一个字符串/字符n次。
我知道有Enumerable.Repeat来实现这个目标,但我试图在没有它的情况下做到这一点。
在这种情况下, LINQ似乎毫无用处,因为在这样的查询中
from X in "s" select X
字符串" s" 正在被探索,所以 X 是一个char。扩展方法也是如此,因为例如“s”。聚合(blablabla) 将再次仅对字符 's' 起作用,而不是字符串本身。为了重复字符串,需要一些“外部”的东西,所以我认为lambdas和delegates,但是如果不声明一个变量来分配委托/lambda 表达式,就无法做到这一点。
所以像定义一个函数并内联调用它:
( (a)=>{return " "+a;} )("a");
或者
delegate(string a){return " "+a}(" ");
会给出一个“没有名称”的错误(因此没有递归,AFAIK,即使通过将可能的 lambda/delegate 作为参数传递),最后甚至不能由 C# 创建,因为它的局限性。
可能是我从错误的角度看待这件事。有任何想法吗?
这只是一个实验,我不关心表演,不关心内存使用......只是它是一条线并且有点自主。也许有人可以用 Copy/CopyTo 做某事,或者将其投射到其他集合中,我不知道。反射也被接受。