C# 如何在启动时从、txt文件填充lstbox

C# 如何在启动时从、txt文件填充lstbox,c#,listbox,startup,C#,Listbox,Startup,我需要在启动时从文本文件填充列表框。我还需要从列表框中删除前2行以及所有的空行,但现在这并不重要。我目前完全无法填充列表框。以下是我目前的代码: struct CDCLocationEntry { public string name; } public partial class StartupForm : Form { private List<CDCLocationEntry> CDCList = new List<CDCLocationEntry>

我需要在启动时从文本文件填充列表框。我还需要从列表框中删除前2行以及所有的空行,但现在这并不重要。我目前完全无法填充列表框。以下是我目前的代码:

struct CDCLocationEntry
{
    public string name;
}

public partial class StartupForm : Form
{
    private List<CDCLocationEntry> CDCList = new List<CDCLocationEntry>();

    public StartupForm()
    {
        InitializeComponent();
    }

    private void ReadFile()
    {
        try
        {
            StreamReader inputFile;
            string line;

            CDCLocationEntry entry = new CDCLocationEntry();

            inputFile = File.OpenText("P3S1 Data File For Import.txt");

            while (!inputFile.EndOfStream)
            {
                line = inputFile.ReadLine();

                CDCList.Add(entry);
            }

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

    private void DisplayText()
    {
        foreach (CDCLocationEntry entry in CDCList)
        {
            CDCLocationListBox.Items.Add(entry.name);
        }
    }

    private void StartupForm_Load(object sender, EventArgs e)
    {
        ReadFile();

        DisplayText();
    }
struct CDCLocationEntry
{
公共字符串名称;
}
公共部分类表格:表格
{
私有列表CDCList=新列表();
公共表格(
{
初始化组件();
}
私有void ReadFile()
{
尝试
{
StreamReader输入文件;
弦线;
CDCLocationEntry=新的CDCLocationEntry();
inputFile=File.OpenText(“用于导入的P3S1数据文件”);
而(!inputFile.EndOfStream)
{
line=inputFile.ReadLine();
添加(条目);
}
}
捕获(例外情况除外)
{
MessageBox.Show(例如Message);
}
}
私有void DisplayText()
{
foreach(CDCList中的CDCLocationEntry)
{
CDCLocationListBox.Items.Add(entry.name);
}
}
私有表单加载(对象发送方、事件参数e)
{
ReadFile();
DisplayText();
}
visual studio说我的问题在这里:

结构CDCLocationEntry { 公共字符串名称; }

我得到的信息是:

警告1字段“Project\u 3\u\u Section\u 1.CDCLocationEntry.name”永远不会出现 分配给,并且其默认值始终为空

我的笔记或在线帮助都没有给我答案


非常感谢您提供的任何帮助

您需要在循环中创建一个
CDCLocationEntry
实例,并在此实例属性
name
处指定来自文件的行

inputFile = File.OpenText("P3S1 Data File For Import.txt");
while (!inputFile.EndOfStream)
{
    CDCLocationEntry entry = new CDCLocationEntry();
    entry.name = inputFile.ReadLine();
    CDCList.Add(entry);
}

您的实际代码只在循环外部创建一个
CDCLocationEntry
实例,并且在不向
name
属性分配任何内容的情况下,在每个循环中添加相同的实例。

您需要在循环内部创建一个
CDCLocationEntry
实例,并在该实例属性
name
处分配行来自你的档案

inputFile = File.OpenText("P3S1 Data File For Import.txt");
while (!inputFile.EndOfStream)
{
    CDCLocationEntry entry = new CDCLocationEntry();
    entry.name = inputFile.ReadLine();
    CDCList.Add(entry);
}

您的实际代码只在循环外创建了一个
CDCLocationEntry
实例,并且在没有为
name
属性分配任何内容的情况下,在每个循环中添加了相同的实例。

您似乎在从文件中读取一行文本,但对其不做任何处理。实际上,您是在向li中添加一个空的CDCLocationEntryst没有来自该行的信息。更重要的是,您正在为每行文本添加相同的实例。看起来您正在从文件中读取一行文本,但对其不做任何操作。实际上,您正在向列表中添加一个空的CDLocationEntry,而没有来自该行的信息。更重要的是,您正在为每行文本添加相同的实例是的,谢谢,我会在网站允许的时候把这个标记正确。是的,谢谢,我会在网站允许的时候把这个标记正确。