繁体   English   中英

是按ASCII代码在LINQ中排序吗?

[英]Is sorting in LINQ by Ascii code?

在我的LINQ to Entities查询我有一个.orderby f.Description.Trim()命令的原因.Trim()是,一些从DB来的数据有一堆白色的空间,在他们的开始,所以我想修剪它们,以免影响排序。

现在它可以正确排序,但我在结果中看到类似以下内容:

[Queries - Blah]
Action
Adhere
Azalia

然后我查了ASCII"[" ,它是91,而“ A”是65,那么为什么首先出现呢? 也许代码中还有其他原因导致这种情况,并且排序还可以吗?

如果可以将实际表达式编译为商店表达式,那么将按照商店实现的顺序进行排序。

因此:结果将取决于数据库,表和列的排序规则。

OrderBy使用默认的字符串比较器,而不使用ASCII(实际上是Unicode)序数比较。 实际上,这取决于您使用的当前文化。

而且,如果您考虑一下……如果您要对附录或索引的条目进行排序,则符号会出现在字母之前(至少是英文)。

如果要按“原始ascii值”排序,请使用

...OrderBy(s => s, StringComparer.Ordinal)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM