如何在文本框中显示此内容?

时间:2015-12-03 08:37:20

标签: c# linq user-interface search

我正在尝试在我的文本框中显示结果。对于常规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);
});

3 个答案:

答案 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。