Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过listview项的文本获取其索引_C#_Forms_Listview - Fatal编程技术网

C# 如何通过listview项的文本获取其索引

C# 如何通过listview项的文本获取其索引,c#,forms,listview,C#,Forms,Listview,我试图通过listview中的文本获取项目的索引。 例如,我有一个列表视图,其中包含项:item1、item2..等等 我试着像这样获取item2的索引: MessageBox.Show(listView1.Items.IndexOf("item2"); 但它不起作用。。。 有什么帮助吗?让我们看看ListView,它的ID是listView1。为了获取此列表视图中的项目,我们必须使用以下代码: listView1.Items // Select the first ListViewItem

我试图通过listview中的文本获取项目的索引。 例如,我有一个列表视图,其中包含项:item1、item2..等等 我试着像这样获取item2的索引:

MessageBox.Show(listView1.Items.IndexOf("item2");
但它不起作用。。。 有什么帮助吗?

让我们看看ListView,它的ID是listView1。为了获取此列表视图中的项目,我们必须使用以下代码:

listView1.Items
// Select the first ListViewItem of items, whose Text is item2
ListViewItem item = listView1.Items 
                             .Cast<ListViewItem>()
                             .FirstOrDefault(x=>x.Text=="item2");

MessageBox.Show(listView1.Items.IndexOf(item).ToString());
listView1.Items的类型是什么

listView1.Items的类型为ListViewItemCollection

有关这方面的更多文档,请查看

存储在此集合listView1.Items中的对象的类型是什么

存储在listView1.Items中的对象类型为ListViewItem

有关此类的更多文档,请查看

为什么选择MessageBox.ShowlistView1.Items.IndexOfitem2;不起作用

之所以在注释中出现错误,是因为名为IndexOf的方法将ListViewItem类型的对象作为参数,并将string类型的对象作为参数传递给该方法

实际上,正如您所看到的,名为IndexOf的方法的签名如下:

 public int IndexOf(
    ListViewItem item
)
因此,为了获得所需项的索引,必须传递给名为IndexOf的ListViewItem方法。因此,我建议您尝试以下代码:

listView1.Items
// Select the first ListViewItem of items, whose Text is item2
ListViewItem item = listView1.Items 
                             .Cast<ListViewItem>()
                             .FirstOrDefault(x=>x.Text=="item2");

MessageBox.Show(listView1.Items.IndexOf(item).ToString());
ListView.FindItemWithText方法执行您想要的操作。 请查看:


当你说它不起作用时,你是什么意思?你有什么错误吗?你得到的索引是错误的吗?Thanks I get Errors:无法从int转换为string/无法从string转换为System.windows.forms.ListViewItem请尝试使用listView1.Items.IndexOfitem2.ToString,并通知我。谢谢感谢您的帮助..但我仍然得到:错误2参数1:无法从'string'转换为'System.Windows.Forms.ListViewItem'我发现了错误,请在几分钟后查看我的答案。Thankstorry.这就是我得到的错误2参数1:无法从'int'转换为'string'。你是对的,我的错。我很抱歉。请现在就试试最新的,让我知道。谢谢,请给我几分钟时间,让我想一想我们怎样才能克服这个问题。Thanks@user3379482请尝试使用更新的代码。