Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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# 如何在asp.net C中按字母顺序对字符串进行排序,这些字符串由逗号等特殊字符分隔#_C#_String_Linq - Fatal编程技术网

C# 如何在asp.net C中按字母顺序对字符串进行排序,这些字符串由逗号等特殊字符分隔#

C# 如何在asp.net C中按字母顺序对字符串进行排序,这些字符串由逗号等特殊字符分隔#,c#,string,linq,C#,String,Linq,在C#中,如何对由特殊字符分隔的字符串进行排序,如“,” 例如,我有这样的字符串 string sStates="IA,KY,CT,ME,AZ"; 我如何按字母顺序重新排序 "AZ,CT,IA,KY" 将它们拆分成一个数组将起作用 但是有没有更有效的方法呢 提前感谢您的帮助。我个人喜欢使用.Net中的列表 using System.Linq; var sStates = "IA,KY,CT,ME,AZ"; var orderedList = sStates.Split(',').ToLis

在C#中,如何对由特殊字符分隔的字符串进行排序,如“,”

例如,我有这样的字符串

string sStates="IA,KY,CT,ME,AZ";
我如何按字母顺序重新排序

"AZ,CT,IA,KY"
将它们拆分成一个数组将起作用

但是有没有更有效的方法呢


提前感谢您的帮助。

我个人喜欢使用.Net中的列表

using System.Linq;

var sStates = "IA,KY,CT,ME,AZ";
var orderedList = sStates.Split(',').ToList().OrderBy(o => o);
var orderedString = string.Join(",", orderedList.ToArray());

这可以使用linq在一行代码中完成:

var result = string.Join(",", source.Split(",").OrderBy(s => s));
效率方面的考虑不应该适用于这里,除非您在时间紧迫的情况下对大量字符串(或大量字符串)执行此操作,或者存在实际的性能问题

可读代码比快速代码要好得多


通常-您应该设计清晰的代码,而不是性能。编写以尽可能清晰的方式传达算法的代码。设定性能目标,并根据这些目标衡量代码的性能。如果您的代码没有达到您的性能目标,请找出瓶颈并加以处理。在设计代码时,不要把时间浪费在纳米优化上。

您可以用这种简单的方法实现它

var orderedString = source.Split(",").OrderBy(p => p);
var result = string.Join(",", orderedString);

你认为“更有效”是什么?你的衡量标准是什么?您描述的技术有效,只需3行代码(如果您真的想大发雷霆,可以减少到1行)。比正确的解决方案更有效?如何更有效?你不能不做任何类型的数组/集合为什么你首先要使用分隔字符串?在大多数情况下,任何集合都会做得更好。您能给我们展示一下您所指的“将它们拆分为数组”代码吗?很难说当我们看不到我们正在比较的东西时,是否有一种更有效的方法来编码某些东西。请求的OP是一个字符串,而不是一个列表或一个iQueDaby……在这样的LINQ表达式中间没有使用<代码>。也许在最后,虽然期望的结果是一个
字符串
数组
同样是不必要的