在 C# 中使用未知字符串长度的 \t 进行格式化
Formatting with \t with unknown string lengths in C#
这可能是一个很难的问题,或者是一个愚蠢的简单问题。不管怎样,请耐心等待,因为我对 C#
.
还很陌生
我一直在构建一个 Form
,里面有一个 ListBox
,还有一些其他东西,一切都很顺利。事情变得奇怪的地方在于用信息填充所述框。
到目前为止,我填写此 ListBox
的逻辑是:
foreach (var value in userList)
{
listBoxForForm.Items.Add("#" + value.internalId + " \t\t-\t" + value.title + "\t\t-\t" + value.typeName);
}
(不要介意 "
和 \t
之间的奇数 </code>!)</p>
<p>问题是,如果某些值太长(不是 <code>value.length
中的 "long",而是宽度中的 "long"),这看起来很奇怪。
为了更好的解释,我截图了(原谅政府式的审查):
如您所见,问题是在这种情况下使用 \t
时文本格式似乎不正确。
有什么方法可以让我按照预期的 3 列样式整齐地设置此文本的格式?在不知道每个 value
中变量的长度的情况下,我的意思是?
你应该试试 String.PadLeft():
using System;
class Program {
static void Main()
{
string s = "cat".PadRight(10); string s2 = "poodle".PadRight(10);
Console.Write(s);
Console.WriteLine("feline");
Console.Write(s2);
Console.WriteLine("canine");
}
}
这将输出:
cat feline
poodle canine
我想你要找的是this。
String.PadRight 和 String.PadLeft 方法
您不应使用制表符,而应使用 String.PadRight(X)
,其中 X 是字段的最大长度。您将需要确保您的 X 值比数据的最大长度长,或者将数据裁剪到最大长度以确保列对齐。
这可能是一个很难的问题,或者是一个愚蠢的简单问题。不管怎样,请耐心等待,因为我对 C#
.
我一直在构建一个 Form
,里面有一个 ListBox
,还有一些其他东西,一切都很顺利。事情变得奇怪的地方在于用信息填充所述框。
到目前为止,我填写此 ListBox
的逻辑是:
foreach (var value in userList)
{
listBoxForForm.Items.Add("#" + value.internalId + " \t\t-\t" + value.title + "\t\t-\t" + value.typeName);
}
(不要介意 "
和 \t
之间的奇数 </code>!)</p>
<p>问题是,如果某些值太长(不是 <code>value.length
中的 "long",而是宽度中的 "long"),这看起来很奇怪。
为了更好的解释,我截图了(原谅政府式的审查):
如您所见,问题是在这种情况下使用 \t
时文本格式似乎不正确。
有什么方法可以让我按照预期的 3 列样式整齐地设置此文本的格式?在不知道每个 value
中变量的长度的情况下,我的意思是?
你应该试试 String.PadLeft():
using System;
class Program {
static void Main()
{
string s = "cat".PadRight(10); string s2 = "poodle".PadRight(10);
Console.Write(s);
Console.WriteLine("feline");
Console.Write(s2);
Console.WriteLine("canine");
}
}
这将输出:
cat feline
poodle canine
我想你要找的是this。
String.PadRight 和 String.PadLeft 方法
您不应使用制表符,而应使用 String.PadRight(X)
,其中 X 是字段的最大长度。您将需要确保您的 X 值比数据的最大长度长,或者将数据裁剪到最大长度以确保列对齐。