天蘩 2019-08-13 14:56 采纳率: 0%
浏览 296

DEV的TreeList控件怎么设置允许同名节点存在

我把一个文件夹下的所有文件遍历到一个List里,

                public class FileInfo
                {
                       bool IsFile { get; set; }
                      string ParentName { get; set; }
                      string Name { get; set; }
                }

                List<FileInfo> fileInfos = new List<FileInfo>();

然后给Dev的TreeList的数据绑定到这个fileInfos上,因为在不同文件夹里是有同名文件的,所以会运行的时候会一个错:System.ArgumentException:"已添加项。字典中的关键字:“XXX"所添加的关键字:“XXX”

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-11 04:39
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在.NET中,你可以使用Dictionary<TKey, TValue>来存储键值对,并且可以在键值对中包含多个元素。但是,如果你想要在同一个键下存储多个元素,你需要将这些元素作为一个数组或者列表一起存储。

    例如:

    private Dictionary<string, FileInfo[]> fileInfosByParent = new Dictionary<string, FileInfo[]>();
    
    // 将文件信息存储到字典中
    foreach (FileInfo fileInfo in fileInfos)
    {
        string parentName = fileInfo.ParentName;
        if (!fileInfosByParent.ContainsKey(parentName))
            fileInfosByParent.Add(parentName, new FileInfo[1]);
    
        FileInfo[] fileArray = fileInfosByParent[parentName];
        fileArray[0] = fileInfo;
    }
    

    在这个例子中,我们创建了一个新的字典来存储每个父目录的文件信息。我们首先检查字典中是否已经包含了这个父目录。如果不存在,则将其添加到字典中并初始化为一个包含单个文件的信息数组。然后,我们将当前的文件信息添加到相应的数组中。

    这样,即使在同一父目录中有多个同名文件,也不会出现错误。

    评论

报告相同问题?