关于Generics的困惑

本文关键字:Generics 关于 | 更新日期: 2023-09-27 18:27:45

我正在尝试使用Dictionary获取有关所选文件的信息。但我不知道该怎么做。这就是我目前所掌握的。你能帮助吗

    Dictionary<string, FileInfo> list = new Dictionary<string, FileInfo>();
        openFileDialog1.Multiselect = true;
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            foreach (string file in openFileDialog1.FileNames)
            {
                list[file] = new FileInfo(file);

                //fi = new FileInfo(file);
             //  listBox1.Items.Add(string.Format("File Name :{0} FileSize : {1}", list.Name, list.Length.));
            }
    }

关于Generics的困惑

所以我假设注释掉的代码不起作用。原因是您试图访问字典的属性,而不是字典中值的属性

这个

listBox1.Items.Add(string.Format("File Name :{0} FileSize : {1}", list.Name, list.Length.));

应该是

listBox1.Items.Add(string.Format("File Name :{0} FileSize : {1}", list[file].Name, list[file].Length));

首先,必须使用关键字(在本例中为文件名)检索FileInfo对象,然后才能访问该实例的NameLength属性。list变量的类型为dictionary,并且没有Name属性。如果您在列表中使用点表示法(如list.Something),则会省去一个间接级别。