c# - 如何在 Linq Query 中获取 IndexOf() 空格

标签 c# linq

下面是我的 Linq 查询

var test = from k in db.CityTable
           where k.Name.Substring(0,1)== test1 && k.Name.Substring(4,1) == test2
           select k.CityName;

k.Name 将具有如下数据库表中所示的值

示例:纽约或新泽西 这里 test1 和 test 2 是字符串变量,其中包含单个字符,如 N 或 Y 或 J。 现在我想比较 k.Name 的第一个字母和 test1。

并将test2与k.Name中第二个单词的首字母进行比较。

假设纽约是数据库列中的值。

test1=N

test2=Y

k.Name=纽约

现在它应该将 N 与 New 的第一个字母进行比较,将 Y 与 York 的第一个字母进行比较。 为此,我必须获得空格后的第一个字符。

这是我试过的,

test = from k in db.CityTable
where k.CityName.Substring(0,1)== test1 && k.CityName.Substring(k.CityName.IndexOf(' '),1) == test2                                               
select k.CityName;

但是在这个查询中我得到了异常

base {System.SystemException} = {"LINQ to Entities does not recognize the method 'Int32 IndexOf(Char)' method, and this method cannot be translated into a store expression."}

我怎样才能做到这一点?

最佳答案

考虑尝试 IndexOf(""),这也可能更好 IndexOf(string.Empty),检查 String.IndexOf(substring) .

where k.CityName.Substring(0,1)== test1 && k.CityName.Substring(k.CityName.IndexOf(" "),1) == test2

关于c# - 如何在 Linq Query 中获取 IndexOf() 空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9029907/

相关文章:

c# - 两种冒泡排序算法的区别

c# - C# 或 Java 有 lambda 的原因是什么?

c# - 检查参数是否是具有流畅验证的 3 个值之一

c# - 使用自动化 API 打开登录弹出窗口的用户凭据错误

c# - 找不到该组件。 (来自 HRESULT : 0x88982F50) 的异常

linq - 为什么不能从这个简单的代码中推断出类型参数?

c# - 查找和比较两个对象,同时避免 NullReferenceException

.net - 动态 LINQ 查询

C# 动态 Linq 变量 Where 子句

c# - 在 linq 查询中使用 C# 扩展方法作为谓词