Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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/2/batch-file/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
.net 列表<;T>;。排序而不是按字母顺序排序_.net_C# 4.0 - Fatal编程技术网

.net 列表<;T>;。排序而不是按字母顺序排序

.net 列表<;T>;。排序而不是按字母顺序排序,.net,c#-4.0,.net,C# 4.0,有人向我提出这个琐碎的问题,我认为这太简单了。那个人让我解释为什么这个列表没有按字母顺序排序。我认为这是一个骗人的问题,直到我把它扔进一个小存根项目,他们是对的…没有骗人的,它不按字母顺序排序。我在谷歌上搜索,我读到的所有信息都说Sort()会按我预期的方式工作。所以Edjumake培养了我天才。我显然没有答案 string str_animals = "hyena, cat, elephant, dog, iguana"; List<string> lst_animals = ne

有人向我提出这个琐碎的问题,我认为这太简单了。那个人让我解释为什么这个列表没有按字母顺序排序。我认为这是一个骗人的问题,直到我把它扔进一个小存根项目,他们是对的…没有骗人的,它不按字母顺序排序。我在谷歌上搜索,我读到的所有信息都说Sort()会按我预期的方式工作。所以Edjumake培养了我天才。我显然没有答案

string str_animals = "hyena, cat, elephant, dog, iguana";
List<string> lst_animals = new List<string>(str_animals.Split(','));

lst_animals.Sort();
string str_animals=“鬣狗、猫、大象、狗、鬣蜥”;
List lst_animals=新列表(str_animals.Split(',');
lst_animals.Sort();
排序后我的名单是:猫,狗,大象,鬣狗,鬣狗????鬣狗和鬣蜥坏了

MSDN说“此方法使用Array.Sort,它使用快速排序算法。此实现执行不稳定排序;即,如果两个元素相等,它们的顺序可能不会保留。相反,稳定排序保留相等元素的顺序”但是鬣狗和鬣蜥是不平等的,所以我认为不稳定的种类并不重要

我错过了什么


谢谢

您需要在拆分后修剪值,因为空格将取消排序(使
hyena
位于
iguana
之后,因为
hyena
不是以空格开头的)

List lst_animals=新列表(str_animals.Split(',).Select(x=>x.Trim());

您需要在分割后修剪值,因为空格将取消排序(使
hyena
位于
iguana
之后,因为
hyena
不以空格开头)

List lst_animals=新列表(str_animals.Split(',).Select(x=>x.Trim());

您正在使用Split,它将字符串拆分为不同的字符串。 鬣狗是第一个,没有前面的空格。 其他的都有一个空间在前面,这会影响你的排序

因此,在分割原始字符串后,应通过修剪字符串来删除前导空格

var animals = str_animals.Split(',').Select (a => a.Trim());

您正在使用Split,它将字符串拆分为不同的字符串。 鬣狗是第一个,没有前面的空格。 其他的都有一个空间在前面,这会影响你的排序

因此,在分割原始字符串后,应通过修剪字符串来删除前导空格

var animals = str_animals.Split(',').Select (a => a.Trim());
简单使用

List<string> lst_animals = new List<string>(str_animals.Split(", "));
List lst_animals=新列表(str_animals.Split(“,”);
“,”中的空格很重要

就像其他人指出的那样,只有用逗号分隔的字符串才会有前缀空格。关于排序,字母前面有一个空格。

只需使用

List<string> lst_animals = new List<string>(str_animals.Split(", "));
List lst_animals=新列表(str_animals.Split(“,”);
“,”中的空格很重要


就像其他人指出的那样,只有用逗号分隔的字符串才会有前缀空格。关于排序,字母前有一个空格。

abcdefgHIjklmnopqrstuvwxyzI我有点困惑…你说的结果是猫、狗、大象、鬣狗、鬣蜥…按字母顺序排序…对不起,伙计们,错了。这确实是一个错误,问题已经被更新了。看起来你被“,”分开了,但你正在使用“,”作为分隔符。因为您的字符串列表将是“鬣狗”、“猫”、“大象”、“狗”、“鬣狗”(注意空格),因此“鬣狗”位于“鬣狗”之后。只需使用
list lst_animals=new list(str_animals.Split(“,”.ToCharArray(),StringSplitOptions.removemptyEntries))list lst_animals=new list(str_animals.Split(“,”.ToCharArray(),StringSplitOptions.removemptyEntries))确定,但当我使用调试器可视化时,它们“似乎”没有显示前导空格???等待我错了!!空间就在那里,我只是俯瞰着它们。坏眼睛!坏眼睛!!!好的,但当我使用调试器可视化它时,它们“似乎”没有显示前导空格???等待我错了!!空间就在那里,我只是俯瞰着它们。坏眼睛!坏眼睛!!!好吧,你比我先做到了。:)好吧,你比我先做到了。:)我不认为use可以在拆分中做到这一点,因为它正在寻找一个文本,而空间太大??我不认为use可以在拆分中做到这一点,因为它正在寻找一个文本,而空间太大??