相关疑难解决方法(0)

在C#中重复一个字符的最佳方法

什么\t是在C#中生成字符串的最佳方法

我正在学习C#并尝试不同的方式来说同样的事情.

Tabs(uint t)是返回的功能stringt的量\t

例如Tabs(3)返回"\t\t\t"

这三种实施方式中哪Tabs(uint numTabs)一种最好?

当然,这取决于"最佳"的含义.

  1. LINQ版本只有两行,很不错.但重复和聚合的调用是否会不必要地耗费时间/资源?

  2. StringBuilder版本是很清楚的,但是是StringBuilder类莫名其妙慢?

  3. string版本是基本的,这意味着它很容易理解.

  4. 这根本不重要吗?它们都是平等的吗?

这些都是帮助我更好地了解C#的问题.

private string Tabs(uint numTabs)
{
    IEnumerable<string> tabs = Enumerable.Repeat("\t", (int) numTabs);
    return (numTabs > 0) ? tabs.Aggregate((sum, next) => sum + next) : ""; 
}  

private string Tabs(uint numTabs)
{
    StringBuilder sb = new StringBuilder();
    for (uint i = 0; i < numTabs; i++)
        sb.Append("\t");

    return sb.ToString(); …
Run Code Online (Sandbox Code Playgroud)

.net c# string

751
推荐指数
12
解决办法
35万
查看次数

我可以"乘"一个字符串(在C#中)吗?

假设我有一个字符串,例如,

string snip =  "</li></ul>";
Run Code Online (Sandbox Code Playgroud)

我想基本上写多次,取决于一些整数值.

string snip =  "</li></ul>";
int multiplier = 2;

// TODO: magic code to do this 
// snip * multiplier = "</li></ul></li></ul>";
Run Code Online (Sandbox Code Playgroud)

编辑:我知道我可以轻松编写自己的函数来实现这一点,我只是想知道是否有一些我不知道的奇怪的字符串运算符

c# string extension-methods

126
推荐指数
8
解决办法
6万
查看次数

是否有内置函数在.net中重复字符串或字符?

c#中是否有一个函数返回给定char或string的x次.或者我必须编码吗?

c# vb.net asp.net

44
推荐指数
5
解决办法
3万
查看次数

如何重复一组字符

我想多次重复一组字符.我知道如何用一个字符做到这一点:

string line = new string('x', 10);
Run Code Online (Sandbox Code Playgroud)

但我想要的是更像这样的东西:

string line = new string("-.", 10);
Run Code Online (Sandbox Code Playgroud)

这将导致:-.-.-.-.-.-.-.-.-.- .-.

我知道字符串构造函数不能这样做,但是在BCL中还有其他一些方法吗?其他建议?

谢谢!

.net c# string

13
推荐指数
3
解决办法
2万
查看次数

如何使用Console.WriteLine()多次打印相同的字符

可能重复:
是否有一种简单的方法可以重复多次返回字符串?

如果我想在Python中显示10次点,我可以使用:

print ".........."
Run Code Online (Sandbox Code Playgroud)

或这个

print "." * 10
Run Code Online (Sandbox Code Playgroud)

如何在C#中使用第二种方法?我试过各种变化:

Console.WriteLine("."*10);
Run Code Online (Sandbox Code Playgroud)

但他们都没有工作.谢谢.

c# printing console.writeline

6
推荐指数
1
解决办法
2万
查看次数

使用LINQ/extensions方法重复字符串

只是我正在调查的好奇心.

问题:简单地重复(倍增,有人会说)字符串/字符n次.
我知道有这个目的的Enumerable.Repeat,但我试图在没有它的情况下做到这一点. LINQ在这种情况下,似乎没什么用处,因为在查询

from X in "s" select X  
Run Code Online (Sandbox Code Playgroud)

字符串 "S"正在探索等X是一个字符.同样是扩展方法,因为例如"S".Aggregate(blablabla)将再次处理角色'',而不是字符串本身.为了重复字符串,需要一些"外部",所以我认为lambdasdelegates,但是如果没有声明一个变量来赋予委托/ lambda表达式,就无法完成.
所以像定义一个函数并将其调用内联:

( (a)=>{return " "+a;} )("a");  
Run Code Online (Sandbox Code Playgroud)

要么

delegate(string a){return " "+a}(" ");  
Run Code Online (Sandbox Code Playgroud)

会给出一个"没有名字"错误(因此没有递归,AFAIK,甚至通过传递一个可能的lambda/delegate作为参数),并且最终甚至不能由C#创建,因为它有其局限性.
可能是我从错误的角度看这件事.有任何想法吗?
这只是一个实验,我不关心表演,关于记忆的使用......只是它是一线而且是一种自主的.也许我可以用Copy/CopyTo做一些事情,或者将它投射到其他一些系列,我不知道.反思也被接受了.

c#-4.0

4
推荐指数
2
解决办法
2195
查看次数

字符串插值 - 重复

有没有办法在不重复的情况下多次插值变量?

例如:

var name = "bla";
Console.WriteLine($"foo {name:repeat:2} bar")
Run Code Online (Sandbox Code Playgroud)

打印

foo blabla bar
Run Code Online (Sandbox Code Playgroud)

我特别感兴趣的是插入几个换行符而不是{Environment.NewLine}在插值掩码中重复几次,如下所示:

$"{Environment.NewLine}{Environment.NewLine}"
Run Code Online (Sandbox Code Playgroud)

c# string interpolation string-interpolation

4
推荐指数
1
解决办法
162
查看次数

c#中的序列乘法

可能重复:
是否有一种简单的方法可以重复多次返回字符串?

在Python中,您可以将这样的序列相乘

fivespaces= ' ' * 5
Run Code Online (Sandbox Code Playgroud)

在C#中是否有任何内置的等价物?(没有运算符重载或类扩展)

c# python

3
推荐指数
1
解决办法
222
查看次数

返回重复多次的字符串

我想在一个基于项深度的字符串之前插入一些*,我想知道是否有一种方法可以返回重复Y次的字符串.例:

string indent = "***";
Console.WriteLine(indent.Redraw(0)); //would print nothing.
Console.WriteLine(indent.Redraw(1)); //would print "***".
Console.WriteLine(indent.Redraw(2)); //would print "******".
Console.WriteLine(indent.Redraw(3)); //would print "*********".
Run Code Online (Sandbox Code Playgroud)

c#

2
推荐指数
1
解决办法
84
查看次数

使用StringBuilder重复一个字符串

我想重复.-40次并将其保存到string使用中StringBuilder

为什么这不起作用?

string result = new StringBuilder("").Append(".-",0,40).ToString();
Run Code Online (Sandbox Code Playgroud)

我知道其他解决方案,但我想使用StringBuilder

c# string stringbuilder

1
推荐指数
1
解决办法
805
查看次数