gpt4 book ai didi

LINQ 按 "round robin"排序

转载 作者:行者123 更新时间:2023-12-04 14:32:10 24 4
gpt4 key购买 nike

看起来这应该是一项简单的任务,但我不知道如何使用 LINQ 来做到这一点。到目前为止,我能找到的唯一信息是关于循环赛制的,这不是我想要的。我可能搜索错了。鉴于以下列表:

var items [] { "apple", "banana", "banana", "candy", "banana", "fruit", "apple" };

我该如何排序(最好使用 linq)以便它以“循环”顺序出现,即在重复之前选择每个唯一项目一次。所以上面的列表会是这样的(如果按字母顺序出现并不重要,即使这个列表确实如此):
var sorted [] { "apple", "banana", "candy", "fruit", "apple", "banana", "banana" };

我知道我可以通过以艰难的方式迭代它来做到这一点,我只是希望更容易一些。有没有人有任何见解如何做到这一点?提前致谢!

最佳答案

var sorted = items.GroupBy(s => s)
.SelectMany(grp => grp.Select((str, idx) => new { Index = idx, Value = str }))
.OrderBy(v => v.Index).ThenBy(v => v.Value)
.Select(v => v.Value)
.ToArray();

关于LINQ 按 "round robin"排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10783608/

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