行未插入List <t> </t>

时间:2014-02-18 17:14:28

标签: c#

为什么我的字符串集合(lst)不出现在控制台中? Visual Studio不会显示任何明显的错误。请指出我的错误。

public partial class Home : Page {
    public Home() {
        InitializeComponent();
    }

    // ...

    private void Button_Click(object sender, EventArgs e) {
        Home.ABC();
        MessageBox.Show("hello world");
    }

    static void ABC() {
        List<string> lst = new List<string>();
        OpenFileDialog opendialog = new OpenFileDialog();
        opendialog.Multiselect = true;
        bool? dialogResult = opendialog.ShowDialog();
        if (dialogResult.HasValue && dialogResult.Value) {
            foreach (var file in opendialog.Files) {
                Stream fileStream = file.OpenRead();
                using (StreamReader reader = new StreamReader(fileStream)) {
                    while (!reader.EndOfStream) {
                        string line=reader.ReadLine();
                        lst.Add(line);
                    }
                    Console.WriteLine(lst);
                }
            }
        }
    }
}

消息框显示hello world,因此函数ABC()也会运行?

enter image description here

3 个答案:

答案 0 :(得分:1)

如上所述,您没有使用控制台应用程序,因此您无法写入控制台。

创建RichTextBox并使用

foreach(var line in lst)
{
    RichTextBoxName.AppendText(line)
}

foreach(var line in lst)
    {
        RichTextBoxName.AppendText(line + "\n") //adds a new line after each string
    }

答案 1 :(得分:0)

您无法在标准Winforms应用程序中使用控制台窗口。它使用Application.Run启动并显示默认对话框,而不是控制台。

为了显示控制台窗口AS WELL作为winforms对话框,您必须使用Win32 API手动创建控制台窗口。

见这里:

How do I show a console output/window in a forms application?

答案 2 :(得分:0)

控制台流输出未设置为可见的控制台窗口,因此Console.Write接受文本,但不会在任何地方显示任何内容。

请尝试使用Debug.WriteLine