从空格字符生成缩进行的最佳方法是什么。我的意思与此类似:
string indent = String.Join(" ", new String[indentlevel]);
s.Write(indent + "My line of text");
从空格字符生成缩进行的最佳方法是什么。我的意思与此类似:
string indent = String.Join(" ", new String[indentlevel]);
s.Write(indent + "My line of text");
您可以使用以下命令创建缩进:
var indent = new string(' ', indentLevel * IndentSize);
IndentSize
将是一个值为 4 或 8 的常数。
我可能会做这样的事情来添加Indent
.
public static string Indent(int count)
{
return "".PadLeft(count);
}
要使用它,您可以执行以下操作:
Indent(4) + "My Random Text"
在您的应用程序中,您可以简单地执行以下操作:
s.Write(Indent(indentLevel));
或者
s.Write("".PadLeft(indentLevel));
如果你想缩进字符串的每一行,你可以使用这个扩展。
public static class StringExtensions
{
public static string Indent(this string value, int size)
{
var strArray = value.Split('\n');
var sb = new StringBuilder();
foreach (var s in strArray)
sb.Append(new string(' ', size)).Append(s);
return sb.ToString();
}
}
像这样使用它:
MyString.Indent(4);
您可以使用这种通用的字符串扩展方法(它的性能和内存是最佳的)。您可以将它保存在主应用程序项目的中央“核心”项目引用中,然后每当您想要获取任何字符串的缩进版本时,它只是:
myString.Indent(n)
(其中 'n' 是缩进级别)
private const byte _indentSize = 4;
public static string Indent(this string originalString, int indentLevel)
{
StringBuilder indentedString = new StringBuilder();
indentedString.Append("".PadLeft(indentLevel * _indentSize));
indentedString.Append(originalString);
return indentedString.ToString();
}
还有一种方式:
int indentLevel = 4;
string myText = "This string will become indented";
string res = String.Format("{0," + indentLevel + "}{1}", String.Empty, myText);
这应该适用于 \r\n 和 \n 分隔符。
public static string Indent(this string value, string indent) {
var builder = new StringBuilder();
foreach (var line in value.GetLines()) {
builder.Append( indent ).Append( line );
}
return builder.ToString();
}
private static IEnumerable<string> GetLines(this string value) {
var start = 0;
while (start < value.Length) {
var end = value.IndexOf( '\n', start );
if (end != -1) {
yield return value.Substring( start, (end - start + 1) );
start = end + 1;
} else {
break;
}
}
if (start < value.Length) yield return value.Substring( start );
}