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

本文关键字:删除 项目 文件 添加 列表 | 更新日期: 2023-09-27 18:25:16

正如您在标题中所读到的,我正试图将多个文件中的列表框项目添加到列表框中。但我不知道如何读取所有这些文件,也不知道如何删除双线(因为有些txt文件包含相同的信息)。

每天都会添加一个新文件,所以我不能手动全部读取。

到目前为止我的代码:

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

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

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

一旦拥有了所有文件,就需要将每个文件中的数据读取到某种形式的存储中,例如DataTable。

一旦填充了DataTable,就需要用数据填充ListBox。

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

也许:

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。

您可以尝试以下代码:在这个代码中,所有唯一的数据都将存储在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);
                                }
                            }
                        }
                    }