将 listView.SelectedIndices 转换为 List<int>。

7
有没有办法将listView.SelectedIndices转换为List<int>?我尝试了以下代码。
(List<int>)reListViewAllMovies.SelectedIndices.Cast<List<int>>()

但它不起作用(InvalidCastException)。
如果没有解决方案,是否有任何“一行”解决方案,例如使用lambda表达式?


1
我已经编辑了您的标题,请参阅“问题的标题应包含“标签”吗?”,其中共识是“不应该包含”。 - John Saunders
2个回答

9

虽然这是一个旧问题,但我自己也在寻找解决方案。.NET v4.5。关于框架的早期版本,我不清楚。

var list = myListView.SelectedIndices.Cast<int>().ToList();

是的,这就是我寻找的,谢谢。它也适用于.NET 4.0。 - icl7126

5
reListViewAllMovies.SelectedIndices.Select(i => (int)i).ToList();

或者,您可以使用一个 foreach 循环来转换结果:

var newList = new List<int>();
foreach(int i in reListViewAllMovies.SelectedIndices)
{
    newList.Add(i);
}

没有Select方法。 - icl7126
循环当然可以正常工作,但我试图避免这种(不使用break - 三行长)的解决方案。无论如何,还是谢谢你的努力... - icl7126
@klerik - 循环有什么问题吗?如果你看一下LINQ的Select方法,你会发现它本质上是在执行相同的操作。 - Justin Niessner
循环没有问题,我只是希望能有一些更短的解决方案... - icl7126
2
myListView.SelectedIndices.Cast<int>().ToList(); - andleer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接