gpt4 book ai didi

c# - 将列表一分为二并重新排序的巧妙方法?

转载 作者:行者123 更新时间:2023-11-30 19:02:42 24 4
gpt4 key购买 nike

我有一个这样的有序列表:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com