gpt4 book ai didi

c# - 根据值差对数组进行排序

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

我有一个数组,例如

string[] stArr= new string[5] { "1#3", "19#24", "10#12", "13#18", "20#21" };

我想对这个数组进行排序

3-1=2;
24-19=5;
12-10=2;
18-13=5;
21-20=1;

排序结果应该是这样的

string[] stArr= new string[5] { "20#21", "1#3", "10#12", "13#18", "20#21" };

我必须为所有可能的情况找到解决方案。

1>length of the array is not fixed(element in the array)

2>y always greater than x e.g x#y

3> i can not use list

最佳答案

您可以使用 LINQ:

var sorted = stArr.OrderBy(s => s.Split('#')
.Select(n => Int32.Parse(n))
.Reverse()
.Aggregate((first,second) => first - second));

针对您的案例:

stArr = stArr.OrderBy(s => s.Split('#')
.Select(n => Int32.Parse(n))
.Reverse()
.Aggregate((first,second) => first - second)).ToArray();

关于c# - 根据值差对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33460834/

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