我解决了我的问题。但是当我创建构造函数LI
变量时出错ListViewItem
但是我可以在foreach
循环中使用它吗?
ListViewItem LISTA = default(ListViewItem);
foreach (LISTA in this.lstImgAdded.SelectedItems) {
我正在尝试使用我的代码获取列表文件的长度:
string[] filePaths = (string[])e.Data.GetData(DataFormats.FileDrop, false);
List<FileInfo> fileInfos = new List<FileInfo>();
foreach (string filePath in filePaths)
{
FileInfo f = new FileInfo(filePaths);
fileInfos.Add(f);
这显示如下错误:
无法从'string []'转换为'string'
答案 0 :(得分:1)
您无法将class
转换为class
的完全相同的数组。只需使用:FileInfo f = new FileInfo(filePath);
代替foreach
此外,获取“文件列表的长度”将与filePaths.Length
如果您需要长度,请改用filePaths.Length
。
如果您想填充FileInfo
,请改为:
string[] filePaths = (string[])e.Data.GetData(DataFormats.FileDrop, false);
List<FileInfo> fileInfos = new List<FileInfo>();
foreach (string filePath in filePaths)
{
FileInfo f = new FileInfo(filePaths);
fileInfos.Add(f);
//long s1 = f.Length;
}
并且您的所有文件信息都在fileInfos
中,如果您需要列表中的项目数量,请按Count
执行此操作:fileInfos.Count
答案 1 :(得分:1)
只需在filePaths
循环
filePath
更改为foreach
即可
FileInfo f = new FileInfo(filePath);
另一种方法是改变这样的循环:
foreach (int s1 in filePaths.Select(filePath => new FileInfo(filePath)).Select(f => ((FileInfo[]) f).Length))
{
//Do somthing with the s1 here
}