在LINQ中使用ASCII等效

时间:2013-11-20 07:35:18

标签: c# visual-studio-2010 linq

我有一个列表,想要按一个字段的ASCII代码进行排序。什么是LINQ中的ASCII方法的等价物。

revisions = revisions.OrderBy(x => Ascii(x.SubRevision) % 90).ToList();

LINQ中不存在方法Ascii。我怎么用呢?

2 个答案:

答案 0 :(得分:0)

它与LINQ无关。如果x.SubRevision是char属性,您只需将其转换为整数即可获得ASCII值:

revisions = revisions.OrderBy(x => ((int)x.SubRevision) % 90).ToList();

答案 1 :(得分:0)

但是,有。您需要使用的功能是System.Data.Objects.SqlClient.SqlFunctions.Ascii(x.Subrevision)。这将获取x.Subrevision中最左边的字符,并为其提供ASCII代码。

但是,此方法只能用于LINQ to Entities查询,而不能用于LINQ to SQL

与其他人一样,C#中的字符可以转换为int以获得相同的效果。因此,如果x.Subrevision是一个字符,你只需将其转换为int,如果它是一个字符串,你可以将最左边的字符转换为字符串,如下所示:

(int)x.Subrevision[0]