gpt4 book ai didi

c# - 我的列表 <> 返回找到的文件的确切数量,但在整个循环中显示相同的数据

转载 作者:行者123 更新时间:2023-11-30 13:27:51 24 4
gpt4 key购买 nike

问题:

在我的程序中,当我尝试循环找到的整个文件列表时,我得到了列表中的 8 个文件,但显示了相同的数据值。

定义:类:

1.SearchFile.cs = 有一个接受 2 个参数(PathToSearchfileExtensionToSearch)然后返回“FileDetails”列表的方法类型。

    public List<FileDetails> fileListFound = new List<FileDetails>();

public List<FileDetails> GetListFiles(string strPath, string strFileExtension)
{

DirectoryInfo dirInfo = new DirectoryInfo(strPath);
FileInfo[] files = dirInfo.GetFiles(strFileExtension, SearchOption.AllDirectories);

FileDetails fileDetails = new FileDetails();
foreach (FileInfo currentFile in files)
{
fileDetails.FileFullName = currentFile.FullName;
fileDetails.FileFullPath = strPath;

fileListFound.Add(fileDetails);

}

return fileListFound;
}

2.FileDetails.cs

 class FileDetails
{
public string FileFullName { get; set; }
public string FileFullPath { get; set; }
public string FileType { get; set; }

}
  1. 我的主程序:

    static void Main(string[] args)
    {
    string strPath = @"C:\Users\Public\Pictures\Sample Pictures";

    FileCollection fileCollected = new FileCollection();
    List<FileDetails> listOfFileFound = fileCollected.GetListFiles(strPath, "*.jpg");
    foreach (FileDetails fileFound in listOfFileFound)
    {
    Console.WriteLine("Full Name: " + fileFound.FileFullName + ", Path:" + fileFound.FileFullPath);
    }
    Console.ReadLine();
    }

注意:我使用控制台应用程序只是为了弄清楚我的问题。

示例输出:(找到 8 个文件)

...\图片**郁金香.jpg**

...\图片**郁金香.jpg**

...\图片**郁金香.jpg**

etc.. 循环 8 次,输出相同

注意:我可以看出 SearchFile.cs 类找到了 8 个不同的文件,然后将其添加到我的列表 并通过放置一些断点(调试)成功返回它。

最佳答案

您总是在修改 fileDetails 的同一个实例。您需要在每次迭代时在循环内分配一个新的:

    foreach (FileInfo  currentFile in files)
{
FileDetails fileDetails = new FileDetails();
fileDetails.FileFullName = currentFile.FullName;
fileDetails.FileFullPath = strPath;

fileListFound.Add(fileDetails);

}

由于 fileDetails 是添加到列表中的引用,修改同一个实例将导致列表中的所有值都相同。

关于c# - 我的列表 <> 返回找到的文件的确切数量,但在整个循环中显示相同的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8551926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com