Linq使用逗号

时间:2016-11-04 06:49:47

标签: c# linq

我有一个表,我在模式Firstname,Lastname

中保存名称

但是当用户输入此值时,名称之间的空格可能不常规 那么如何使用Linq

检查列值是否唯一
 string name_input = "a , b"; 
if (context.TableRankHolders.Any(q => q.Name == name_input))
{
  //name exists
}

我想要做的是将输入字符串格式化为严格的" a,b"通过删除逗号之前和之后的所有不需要的空格,如示例

在数据库中,Name值采用不同的格式,例如逗号之间可能没有空格,或逗号之间的空格更多,如" a,b" /" a,b" /" a,b" /" a,b"等等 现在使用LINQ查询进行检查,但是如何根据列

中的逗号格式化名称以进行拆分

唯一的共同点就是必须有,现在,我猜方法就像 拆分,并检查零件0和零件1是否存在于db中的单行

1 个答案:

答案 0 :(得分:0)

假设名称中没有空格,您可以使用简单的方法:

context.TableRankHolders.Any(q => q.Name.Replace(" ", "") == name_input.Replace(" ", ""))

沿途可能检查null。如果你希望名字有空格,你应该选择以下内容:

bool CheckNames(string a, string b)
{
    string[] splitA = a.Split(',').Select(q => q.Trim(' ')).ToArray();
    string[] splitB = b.Split(',').Select(q => q.Trim(' ')).ToArray();
    return splitA.SequenceEqual(splitB);
}

...
context.TableRankHolders.Any(q => CheckNames(q.Name, name_input))