我正在尝试在我的文本框中显示结果。对于常规Windows控制台,代码可以工作,但如何使用GUI执行此操作?
代码的整个Console.WriteLine
部分有一个红色下划线。
var listOfWords = Regex.Matches(File.ReadAllText(textBoxInputFile.Text), @"\w+")
.Cast<Match>()
.Select((m, pos) => new { Word = m.Value, Pos = pos })
.GroupBy(s => s.Word, StringComparer.CurrentCultureIgnoreCase)
.Select(g => new { Word = g.Key, PosInText = g.Select(z => z.Pos).ToList() })
.ToList();
var result = listOfWords.GroupBy(x => x)
.Select(x => new { Key = x.Key, Count = x.Count() })
.OrderBy(x => x.Key);
result.ToList().ForEach(x =>
{
textBoxShowText.Text = Console.WriteLine("{0}:{1}", x.Key, x.Count);
});
答案 0 :(得分:1)
Console.Writeline
方法旨在向控制台写入内容,因为它的名称已经说明了。
您正在尝试设置文本框的文本,因此您只需要将字符串值分配给Text
属性。
如果您需要格式化此值,则需要使用String.Format
方法。
另请注意 - 您正在尝试在循环中使用它,因此看起来您需要附加Text
属性,而不是在每次迭代时替换它。
所以它应该是这样的:
textBoxShowText.Text += String.Format("{0}:{1}", x.Key, x.Count);
答案 1 :(得分:0)
将Console.WriteLine
替换为String.Format
答案 2 :(得分:0)
每个值附加&#34;&#34;然后它将转换为字符串值 所以你可以写
textBoxShowText.Text = x.Key +&#34;:&#34; + x.Count;
使用此代码,结果将仅显示最后一条记录 您可以使用Listview控件在您使用Windows窗体应用程序来显示这些记录。 要么 如果您正在处理Web应用程序,请使用textarea。