Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何按数字对字符串排序?_C#_Sorting - Fatal编程技术网

C# 如何按数字对字符串排序?

C# 如何按数字对字符串排序?,c#,sorting,C#,Sorting,如何在字符串[]中按数字对字符串排序 string[] subdirectoryEntries = System.IO.Directory.GetDirectories("F:/Loveless/data/"); foreach (string subdirectory in subdirectoryEntries) { } 我的数据是: 1.E/zdssd/dd 2.E/zdssd/dv 3.E/zdssd/sdd 4.E/zdssd/ddsdfsdfdsf 5. 6. 7. 8. 9. 1

如何在字符串[]中按数字对字符串排序

string[] subdirectoryEntries = System.IO.Directory.GetDirectories("F:/Loveless/data/");
foreach (string subdirectory in subdirectoryEntries)
{
}
我的数据是:

1.E/zdssd/dd
2.E/zdssd/dv
3.E/zdssd/sdd
4.E/zdssd/ddsdfsdfdsf
5.
6.
7.
8.
9.
10.E/dfgdfg11
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22..
这一结果

1.
10.
11.


C#language

您可以使用。假设数组中的每个字符串都匹配
^\d+\..*$
,则只需提取数字,将其解析为整数并比较值:

Array.Sort<string>(array, (x, y) => 
    int.Parse(x.Substring(0, x.IndexOf('.'))) - 
    int.Parse(y.Substring(0, y.IndexOf('.'))));
Array.Sort(数组,(x,y)=>
int.Parse(x.Substring(0,x.IndexOf('.'))-
int.Parse(y.Substring(0,y.IndexOf('.'));

你一定试过什么!什么?string[]subdirectory entries=System.IO.Directory.GetDirectories(“F:/Loveless/data/”)@monkey_boys-所以数据不爱你?排序如何从原始值“1.E/zdsd/dd”中删除“E/zdsd/dd”。也许您的问题不是关于排序?输入字符串的格式不正确?该代码适用于您所展示的示例。如果您的实际数据看起来不一样,这就有点难以帮助。我看不到您的计算机上有哪些目录。我编辑了新的问题更改为regex匹配号?
Array.Sort<string>(array, (x, y) => 
    int.Parse(x.Substring(0, x.IndexOf('.'))) - 
    int.Parse(y.Substring(0, y.IndexOf('.'))));