Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.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# ListCollectionView到列表_C# - Fatal编程技术网

C# ListCollectionView到列表

C# ListCollectionView到列表,c#,C#,我有一个ListCollectionView,我想将其放入列表中,但我不确定如何执行此操作。 下面是我尝试过的代码。它返回一个ListCollectionView错误 不包含ToList()的定义 有人能告诉我怎么做吗?你可以这样做。不要使用列表,而是使用IList var repItems = (ListCollectionView)view; IList<object> list = repItems.SourceCollection as IList<object>

我有一个ListCollectionView,我想将其放入列表中,但我不确定如何执行此操作。
下面是我尝试过的代码。它返回一个ListCollectionView错误 不包含ToList()的定义


有人能告诉我怎么做吗?

你可以这样做。不要使用列表,而是使用IList

var repItems = (ListCollectionView)view;
IList<object> list = repItems.SourceCollection as IList<object>;
var repItems=(ListCollectionView)视图;
IList list=repItems.SourceCollection作为IList;

您可以这样做。不要使用列表,而是使用IList

var repItems = (ListCollectionView)view;
IList<object> list = repItems.SourceCollection as IList<object>;
var repItems=(ListCollectionView)视图;
IList list=repItems.SourceCollection作为IList;

您只需调用
repItems.SourceCollection
即可获取基础列表。由于ListCollectionViews数据源是一个
IList
,因此您总是会得到一个列表

var sourceList = new List<int> {1,2,3,4,5,6,7,7,7,7,100};

var listView = new ListCollectionView(sourceList);
Console.WriteLine(listView.SourceCollection.GetType()); //System.Collections.Generic.List`1[System.Int32]
var sourceList=新列表{1,2,3,4,5,6,7,7,7100};
var listView=new ListCollectionView(sourceList);
Console.WriteLine(listView.SourceCollection.GetType())//System.Collections.Generic.List`1[System.Int32]

您只需调用
repItems.SourceCollection
即可获取基础列表。由于ListCollectionViews数据源是一个
IList
,因此您总是会得到一个列表

var sourceList = new List<int> {1,2,3,4,5,6,7,7,7,7,100};

var listView = new ListCollectionView(sourceList);
Console.WriteLine(listView.SourceCollection.GetType()); //System.Collections.Generic.List`1[System.Int32]
var sourceList=新列表{1,2,3,4,5,6,7,7,7100};
var listView=new ListCollectionView(sourceList);
Console.WriteLine(listView.SourceCollection.GetType())//System.Collections.Generic.List`1[System.Int32]

ListCollectionView实现了非泛型IEnumerable,所以不能对其调用泛型ToList扩展方法。你需要先投下它:

var repItems = (ListCollectionView)view;
listItems = repItems.Cast<object>().ToList();
var repItems=(ListCollectionView)视图;
listItems=repItems.Cast().ToList();

ListCollectionView实现了非泛型IEnumerable,所以不能对其调用泛型ToList扩展方法。你需要先投下它:

var repItems = (ListCollectionView)view;
listItems = repItems.Cast<object>().ToList();
var repItems=(ListCollectionView)视图;
listItems=repItems.Cast().ToList();

此()解决方案有效吗?感谢链接Drg0nvil,它很有用。此()解决方案有效吗?感谢链接Drg0nvil,它很有用。.SourceCollection返回未筛选的集合。如果我希望在列表中显示相同的筛选结果,该怎么办?完全同意comment。SourceCollection返回未筛选的集合。如果我希望列表中有相同的筛选结果,该怎么办?完全同意commentSourceCollection返回未筛选/未排序的集合,这可能不同于ListCollectionViewSourceCollection返回未筛选/未排序的集合,这可能不同于ListCollectionView