gpt4 book ai didi

c# - 如何使用 LINQ 仅返回列的第一个字符在某个范围内的行?

转载 作者:行者123 更新时间:2023-12-02 17:36:20 26 4
gpt4 key购买 nike

我想使用 LINQ 将从 SQL Server 数据库返回的行数限制为主键 (WordId) 第一个字符在 A 到 E 范围内的行。这是我当前的方式使用此 LINQ 执行此操作:

var words = db.WordForm
.Where(wf => string.Compare(wf.WordId.Substring(0, 1), "A") >= 0 &&
string.Compare(wf.WordId.Substring(0, 1), "E") <= 0)
.ToListAsync();

有人可以告诉我这是最好的方法还是有其他使用 LINQ 的方法?

最佳答案

您可以使用SqlFunctions.Ascii,该函数返回字符表达式最左边字符的ASCII代码值,因此您可以像这样使用它:

int asciiA = Encoding.ASCII.GetBytes("A")[0];
int asciiE = Encoding.ASCII.GetBytes("E")[0];

var words = db.WordForm.Where(wf => SqlFunctions.Ascii(wf.WordId.ToUpper()) >= asciiA &&
SqlFunctions.Ascii(wf.WordId.ToUpper()) <= asciiE).ToListAsync();

关于c# - 如何使用 LINQ 仅返回列的第一个字符在某个范围内的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36940868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com