Вы можете использовать CheckedItems
свойство вместо CheckedIndices
:
var selectedTags = this.listView1.CheckedItems
.Cast<ListViewItem>()
.Select(x => x.Tag);
В любом случае также можно использовать CheckedIndices
, например:
var selectedTags = this.listView1.CheckedIndices
.Cast<int>()
.Select(i => this.listView1.Items[i].Tag);
РЕДАКТИРОВАТЬ:
Небольшое объяснение LINQ Select()
:
Следующий код:
var selectedTags = this.listView1.CheckedItems
.Cast<ListViewItem>()
.Select(x => x.Tag);
foreach(var tag in selectedTags)
{
// do some operation using tag
}
функционально равен:
foreach(ListViewItem item in this.listView1.CheckedItems)
{
var tag = item.Tag;
// do some operation using tag
}
В этом конкретном примере он не так полезен и не короче с точки зрения длины кода, но, поверьте, во многих ситуациях LINQ действительно очень полезен.