use*_*609 14 c# listviewitem winforms
我怎么能投ListView.Items的List<string>?
这是我试过的:
List<string> list = lvFiles.Items.Cast<string>().ToList();
Run Code Online (Sandbox Code Playgroud)
但是我收到了这个错误:
无法将类型为"System.Windows.Forms.ListViewItem"的对象强制转换为"System.String".
Jon*_*eet 33
A ListViewItemCollection正是它听起来的样子 - ListViewItem元素的集合.它不是字符串的集合.您的代码在执行时失败的原因与此代码在编译时失败的原因相同:
ListViewItem item = lvFiles.Items[0];
string text = (string) item; // Invalid cast!
Run Code Online (Sandbox Code Playgroud)
如果你想要一个字符串列表,每个字符串都取自Texta 的属性ListViewItem,你可以轻松地做到这一点:
List<string> list = lvFiles.Items.Cast<ListViewItem>()
.Select(item => item.Text)
.ToList();
Run Code Online (Sandbox Code Playgroud)
该Cast方法基本上会尝试执行box/unbox,因此如果列表中的项目不是字符串,它将失败.试试这个:
List<string> list = lvFiles.Items.Cast<ListViewItem>()
.Select(x => x.ToString()).ToList();
Run Code Online (Sandbox Code Playgroud)
或这个
List<string> list = lvFiles.Items.Cast<ListViewItem>()
.Select(x => x.Text).ToList();
Run Code Online (Sandbox Code Playgroud)
尝试这样的事情
List<string> list = lvFiles.Items.Cast<ListViewItem>().Select(x=> x.ToString()).ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20208 次 |
| 最近记录: |