为什么C#OrderBy的字符串顺序在大写之前是小写?
我正在用C#编码,有一种情况需要我对一个字符串的序列进行排序。 例如:为什么C#OrderBy的字符串顺序在大写之前是小写?,c#,string,list,character,ascii,C#,String,List,Character,Ascii,我正在用C#编码,有一种情况需要我对一个字符串的序列进行排序。 例如: var list=新列表{“1”、“A”、“A”、“0”}; 因为我们都知道ASCII表先上后下,所以我希望它的顺序是这样的(0,1,A,A),但它的顺序是这样的(0,1,A,A) 我有一个简单的例子: var-strs=新列表{“1”、“A”、“A”、“0”}; var orderedStrs=strs.OrderBy(l=>l); Console.WriteLine(“--strs--”); foreach(strs中
var list=新列表{“1”、“A”、“A”、“0”};
因为我们都知道ASCII
表先上后下,所以我希望它的顺序是这样的(0,1,A,A),但它的顺序是这样的(0,1,A,A)
我有一个简单的例子:
var-strs=新列表{“1”、“A”、“A”、“0”};
var orderedStrs=strs.OrderBy(l=>l);
Console.WriteLine(“--strs--”);
foreach(strs中的可变元素){
控制台写入线(elem);
}
Console.WriteLine(“--orderedStrs--”);
foreach(orderedStrs中的变量元素){
控制台写入线(elem);
}
var chars=新列表{'1','A','A','0'};
var orderedChars=chars.OrderBy(ch=>ch);
Console.WriteLine(“--chars--”);
foreach(以字符表示的可变元素){
控制台写入线(elem);
}
Console.WriteLine(“--orderedChars--”;
foreach(orderedChars中的变量元素){
控制台写入线(elem);
}
这是输出:
---strs---
1
A
a
0
--- orderedStrs---
0
1
a
A
---chars---
1
A
a
0
--- orderedChars---
0
1
A
a
有人能回答我这个问题吗?你可以使用OrderBy(a=>a,StringComparer.Ordinal)
var-strs=新列表{“1”、“A”、“A”、“0”};
var orderedStrs=strs.OrderBy(l=>l);
Console.WriteLine(“--strs--”);
foreach(strs.OrderBy中的变量elem(a=>a,StringComparer.Ordinal))
{
控制台写入线(elem);
}
结果
---strs---
0
1
A
a
你住在哪个国家?你说什么语言?请在您的问题中指定。@mjwills,对不起,输入错误,已修复!我住在葡萄牙。你认为这是一个地区性问题吗?你读了吗?很好!所以它没有使用顺序比较?那么,为什么较低的优先呢?为什么你认为它不会呢?医生在哪里说不会发生这种情况?也许可以引用该页面(或者将其标记为副本)。@mjwills谢谢,你是对的。但我认为最好回答这个问题,而不是链接或将其标记为重复问题