gpt4 book ai didi

c# - 在测试 1、测试 10、测试 2 中对包含数字的字符串进行排序的好方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:51:27 29 4
gpt4 key购买 nike

我正在使用 C#、.NET 4.7

我有 3 个字符串,即。

[test.1, test.10, test.2]

我需要对它们进行排序以获得:

test.1
test.2
test.10

我可能会得到其他的字符串,比如

[1test, 10test, 2test]

应该产生:

1test
2test
10test

使用相同的方法。

想法?

提前致谢。

最佳答案

您可以使用正则表达式解析数字,然后对字符串进行排序。例如,

Regex re = new Regex(@"\d+");
var result = strArray.Where(x=>re.Match(x).Success)
.Select(x=> new { Key = int.Parse(re.Match(x).Value),Value = x})
.OrderBy(x=>x.Key).Select(x=>x.Value);

其中 strArray 是字符串的集合。

请注意,在上述情况下,您忽略了没有数字部分的字符串(因为它没有在 OP 中描述)。字符串的数字部分使用 Regex 进行解析,然后用于对集合进行排序。

例子,输入

var strArray = new string[]{"1test", "10test", "2test"};

输出

1test 
2test
10test

输入

var strArray = new string[]{"test.1", "test.10", "test.2"};

输出

test.1 
test.2
test.10

关于c# - 在测试 1、测试 10、测试 2 中对包含数字的字符串进行排序的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57309007/

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