从多个文件添加到列表框并删除加倍项

时间:2015-12-02 10:14:12

标签: c# wpf listbox

正如您可以在标题中看到的那样,我正在尝试将列表框项目添加到多个文件的列表框中。但我不知道如何从所有这些文件中读取以及如何删除加倍的行(因为一些txt文件包含相同的信息)。

每天都会添加一个新文件,因此我无法手动阅读这些文件。

到目前为止我的代码:

string directory = System.AppDomain.CurrentDomain.BaseDirectory;
        DirectoryInfo dinfo = new DirectoryInfo(directory);
        FileInfo[] Files = dinfo.GetFiles("*.txt");

3 个答案:

答案 0 :(得分:0)

首先,您需要识别需要阅读的每个文件。

获得所有文件后,您需要将每个文件中的数据读入某种形式的存储,例如DataTable。

填写DataTable后,您需要使用数据填充ListBox。

答案 1 :(得分:0)

从目前为止,您看来下一步将是从每个文件中收集数据(我们可以处理之后删除的重复项)。

所以也许:

HashSet<something> myCollection = new HashSet<something>();
// perhaps <something> is just a string?

foreach (var file in Files)
{
    // Collect what you need and pop it in the collection
}

// Remove duplicates

要从文件中获取信息,您可能需要StreamReader

要删除重复内容,请尝试HashSets

答案 2 :(得分:0)

你可以试试这段代码: 在此代码中,所有唯一数据都将存储在lstData中,您可以使用此

绑定控件
 string directory = System.AppDomain.CurrentDomain.BaseDirectory;
                    DirectoryInfo dinfo = new DirectoryInfo(directory);
                    FileInfo[] Files = dinfo.GetFiles("*.txt");

                    List<string> lstData = new List<string>();

                    foreach (var file in Files)
                    {
                        using (StreamReader sr = File.OpenText(file.FullName))
                        {
                            string s = String.Empty;
                            while ((s = sr.ReadLine()) != null)
                            {
                                if (!lstData.Contains(s))
                                {
                                    lstData.Add(s);
                                }
                            }
                        }
                    }