gpt4 book ai didi

c# - 排序章节内容,如 14.1.2.3 和 14.10.1.2.3.4

转载 作者:太空狗 更新时间:2023-10-29 18:16:41 27 4
gpt4 key购买 nike

我有不同深度的不同章节。

因此有 14.1 和 14.4.2 以及 14.7.8.8.2 等等。

按字母数字排序,14.10 将出现在 14.2 之前。那很糟。应该在14.9之后。

有没有一种简单的方法来对这些进行排序,而不添加前导零? f.e.用 linq?

最佳答案

public class NumberedSectionComparer : IComparer<string>
{
private int Compare(string[] x, string[]y)
{
if(x.Length > y.Length)
return -Compare(y, x);//saves needing separate logic.
for(int i = 0; i != x.Length; ++i)
{
int cmp = int.Parse(x[i]).CompareTo(int.Parse(y[i]));
if(cmp != 0)
return cmp;
}
return x.Length == y.Length ? 0 : -1;
}
public int Compare(string x, string y)
{
if(ReferenceEquals(x, y))//short-cut
return 0;
if(x == null)
return -1;
if(y == null)
return 1;
try
{
return Compare(x.Split('.'), y.Split('.'));
}
catch(FormatException)
{
throw new ArgumentException();
}
}
}

关于c# - 排序章节内容,如 14.1.2.3 和 14.10.1.2.3.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8971530/

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