字符串.格式获胜';t创造正确的间距,用尽所有方法
本文关键字:有方法 获胜 格式 创造 字符串 | 更新日期: 2023-09-27 18:26:01
这似乎是一个微不足道的问题,但我发誓我已经用尽了我能找到的每一个方法。我正试图将字典的内容输出到文本框中。这是用C#编写的。我知道它有多相关,但我正在输出到一个WPF文本框。我尝试了以下方法:
Dictionary<string, int> nGramDictionary = StatisticalBreakDown.getNGramFrequency(filePath, 3);
MasterStatsTextBlock.Text += "~N-Gram Frequency~" + "'r'n";
foreach (var kvp in nGramDictionary)
{
MasterStatsTextBlock.Text += string.Format("{0,-40}{1}{2}", kvp.Key, kvp.Value, Environment.NewLine);
}
MasterStatsTextBlock.Text += "'r'n";
和
Dictionary<string, int> nGramDictionary = StatisticalBreakDown.getNGramFrequency(filePath, 3);
MasterStatsTextBlock.Text += "~N-Gram Frequency~" + "'r'n";
foreach (var kvp in nGramDictionary)
{
MasterStatsTextBlock.Text += string.Format("{0}{1}{2}", kvp.Key.PadRight(-40), kvp.Value, Environment.NewLine);
}
MasterStatsTextBlock.Text += "'r'n";
和
Dictionary<string, int> nGramDictionary = StatisticalBreakDown.getNGramFrequency(filePath, 3);
MasterStatsTextBlock.Text += "~N-Gram Frequency~" + "'r'n";
foreach (var kvp in nGramDictionary)
{
MasterStatsTextBlock.Text += string.Format("{0}'t't't{1}{2}", kvp.Key, kvp.Value, Environment.NewLine);
}
MasterStatsTextBlock.Text += "'r'n";
但两者都不起作用。每个人都发誓这些会奏效,但事实并非如此。以下是我对这三种情况的输出:
~N-Gram Frequency~
talan kirk book 1
kirk book of 1
book of mormon 1
of mormon am 1
mormon am tt 1
am tt extraction 1
tt extraction nephi 1
extraction nephi nephi 1
nephi nephi the 1
nephi the lord 1
the lord speaks 1
lord speaks to 1
speaks to his 1
to his children 1
his children the 1
children the savior 1
the savior teaches 1
savior teaches plainly 1
teaches plainly because 1
请帮忙。我真的不知道为什么这些不起作用。
我怀疑问题在于您使用的是TextBox
,而我的猜测是您没有将文本设置为单空间字体。。。但是您试图使用字符串格式来准确定位值。
要研究字符串格式,我建议使用控制台应用程序。例如,下面的演示显示了字符串格式的正确工作。键和值都有最大长度,键左对齐,值右对齐:
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
var data = new Dictionary<string, int>
{
{ "first", 10 },
{ "second", 1 },
{ "third", 100000 }
};
foreach (var entry in data)
{
Console.WriteLine("{0,-20}{1,8}", entry.Key, entry.Value);
}
}
}
在WPF UI中尝试一下,你可能会看到同样的破损——除非你将字体设置为单空格字体。
然而,单空间字体可能看起来很难看。。。在这种情况下,您可能根本不想为此使用CCD_ 2。你可以使用其他更高级的基于文本的控件,也可以使用更适合显示数据列表/网格的控件。