作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个这样的有序列表:
var list = new List<String>(){"aaa","aab","aac","baa","bab","bac"};
我想将列表切成两半并颠倒两半的顺序,同时保留两个子列表的顺序。我能想到的唯一方法是这样的:
var list = new List<String>() { "aaa", "aab", "aac", "baa", "bab", "bac" };
int index = list.IndexOf("aac");
var tempList = new List<String>(list.GetRange(index, list.Count - index));
tempList.AddRange(list.GetRange(0, index));
list = tempList;
这需要 5 行代码和一个临时变量,看起来不太好。
有没有更简洁的方法来做到这一点?我认为 Linq 应该是可能的,但这些方法中的大多数似乎并不关心底层列表的顺序。
有什么想法吗?
最佳答案
这可能更短,但也可能更慢:
var list = new List<String> { "aaa", "aab", "aac", "baa", "bab", "bac" };
var index = list.IndexOf("aac");
var r = list.Skip(index).Concat(list.Take(index)).ToList();
关于c# - 将列表一分为二并重新排序的巧妙方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9842435/
这适用于 ubuntu 16.04,但不适用于 17.10 + curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslog
我是一名优秀的程序员,十分优秀!