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

时间:2012-01-27 06:52:35

标签: 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中第二个单词的First Alphabet进行比较。

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

TEST1 = N

TEST2 = Y

k.Name =纽约

现在它应该将N与第一个字母表New和Y与第一个York字母进行比较。 为了达到这个目的,我必须得到Space之后的第一个角色。

这就是我的尝试,

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无法识别   方法'Int32 IndexOf(Char)'方法,而且这个方法不能   翻译成商店表达。“}

我怎样才能实现这个目标?

1 个答案:

答案 0 :(得分:2)

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

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