Csharp/C#教程:LINQ组一种类型的项目分享


LINQ组一种类型的项目

我有一个包含各种派生类的List。 我可能有这样的事情:

List list = new List() { new Class1(), new Class2(1), new Class3(), new Class2(2), new Class4() }; 

我试图使用LINQ对列表进行半排序,以便保持自然顺序除了Class2。 所有Class2实例应在第一个Class2出现的位置组合在一起。 这是输出应该是什么样的:

 List list = new List() { new Class1(), new Class2(1), new Class2(2), new Class3(), new Class4() }; 

我不能为我的生活弄清楚如何做到这一点……

你可以这样做:

 list = list .TakeWhile(o => !(o is Class2)) .Concat(list.Where(o => o is Class2)) .Concat( list.SkipWhile(o => !(o is Class2)).Where(o => !(o is Class2)) ) .ToList(); 

这将占用所有项目,直到第一个Class2项目,然后是所有Class2项目,然后是所有剩余的非Class2项目。

上述就是C#学习教程:LINQ组一种类型的项目分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/cdevelopment/949548.html

(0)
上一篇 2021年11月17日
下一篇 2021年11月17日

精彩推荐