搜索

c#怎么从分组后的集合中删除集合

发布网友 发布时间:2022-04-22 01:14

我来回答

3个回答

热心网友 时间:2022-07-10 06:06

IEnumerable<IGrouping<string, TblArticle>> listArticle = Model.GroupBy(item => item.categoryName).skip(2);

要注意的是如果你要用lambda的表式的话,skip是一个不错的选择。表示跳过多少个,其结果中不再含有前N个的结果。

而RemoveAt是List对象的一个操作,如果想用这个,那么其必须转换为list类型后才可以操作,IEnumeralbe中是没有这个操作的。它是用lambda表达式的。

所以你必须先转换为List.也就是as List<IGrouping<string,TablArticle>>,然后在这个list上执行两次
RemoveAt(0),删除的就前两个。先执行RemoveAt(0),再执行RemoveAt(1)事实上是删除了第一个和第三个!因为RemoveAt(0)后,第一个被删除,然后第二个变成了第一个,所以还需要删除RemoveAt(0)。或者先删除第二个,再删除第一个是不是错的选择。也就是先执行RemoveAt(1),则第二个被删除不会影响到第一个,然后再执行RemoveAt(0)即可。

Lambda表达式是在.net3.5中加入的。而当前的C#语言版本都是3.0。C#版本与.net framework版本是两码事,而Lambda是属于.net类库的,与语言版本无关。

热心网友 时间:2022-07-10 06:06

listArticle = listArticle.Skip(2);
你自己试一下。

热心网友 时间:2022-07-10 06:07

List<IGrouping<string, TblArticle> list = listArticle as List<IGrouping<string, TblArticle>;
list.RemoveAt(0);
list.RemoveAt(1);
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top