我有一个表,我在模式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中的单行
答案 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))