Метод ListViewItemCollection.GetEnumerator()
выдает исключение, если он вызывается, когда список находится в виртуальном режиме. Это означает, что вы не сможете получить к ним доступ любым способом LINQ, включая OfType()
.
Однако вы можете просто выполнить итерацию списка:
List<string> lst = new List<string>();
for (int i = 0; i < listView1.VirtualListSize; i++) {
lst.Add(listView1.Items[i].Text);
Однако (опять же), если список является виртуальным, он, вероятно, содержит большое количество элементов, поэтому это может занять некоторое время:)