因为ListCollectionView不支持索引器(ex View),所以我发现遍历过滤/排序列表的唯一方法就是使用foreach。
1) foreach会确保视图中项目的顺序在迭代期间保持不变吗?如果没有,还有其他选择吗?
2)是否有强类型的ListCollectionView?我遗漏了很多linq扩展方法,并且有很多FindMaxThis、FindFirstThat……:)
发布于 2012-05-20 12:38:11
1)当您将foreach与ListCollectionView一起使用时,您可能会从基础集合(InternalList属性)中获得枚举器。如果您使用List<>的一个实例初始化它,那么您可以非常确定枚举将是有序的。
2)有两个选项可供选择。首先,您可以使用内部列表,并将其强制转换为强类型集合,或者将对它的引用存储在类中的某个位置。其次是直接在ListCollectionView实例上使用Cast<>。对于性能关键型应用程序,我会选择第一种方法。
var collection = new ListCollectionView(new List<int>());
var even = collection
.Cast<int>()
.Where(n => n%2 == 0);https://stackoverflow.com/questions/10670483
复制相似问题