gpt4 book ai didi

c# - List 分成三份

转载 作者:太空宇宙 更新时间:2023-11-03 17:50:04 24 4
gpt4 key购买 nike

假设我有一个数字列表,可以是任意数量,实际上超过15。

我想将数字列表分为三类,具体取决于它们的大小(例如,小,中和大)。

实现此目标的最佳方法是什么?

我已经写了下面的内容,是否有必要按照下面的方法创建自己的功能,或者我可以在.NET中使用任何现有功能?

  public static List<int> OrderByThree (List<int> list)
{
list.Sort();
int n = list.Count();
int small = n / 3;
int medium = (2 * n) / 3;
int large = n;
// depending if the number is lower/higher than s/m/l,
// chuck into group via series of if statements

return list;
}



假设我有一个数字列表,例如1-15,我希望小数字1-5,中号6-10,大号11-15。但是我一开始不知道数字的数量,也没有戏剧性,我希望使用 list.count来划分自己的功能。

最佳答案

由于您已经对列表进行了排序,因此可以使用一些LINQ来获取结果。我在这里假设一个右闭间隔。

list.Sort();
int n = list.Count();
var smallGroup = list.TakeWhile(x => (x <= n / 3)).ToList();
var middleGroup = list.Skip(smallGroup.Count).TakeWhile(x => (x <= (2 * n) / 3)).ToList();
var largeGroup = list.Skip(smallGroup.Count + middleGroup.Count).ToList();


编辑
正如Steve Padmore所评论的那样,您可能希望从您的方法中返回列表列表( List<List<int>>),而不仅仅是返回 List<int>

return new List<List<int>> { smallGroup, middleGroup, largeGroup };

关于c# - List <int>分成三份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33242747/

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