我从数据库获取数据,我需要检查用户输入的匹配数据。 不幸的是,由于数据库记录中有这么多空格,我没有得到它。
_usersinapplicationroles.All().Where(a => a.ApplicationRoleId == iAppRoleId && (Regex.Replace(a.User.DisplayName, @"\s\s+", " ").Trim() == Regex.Replace(strDisplayName, @"\s\s+", " ").Trim())).AsQueryable();
上面的表达式错误:由于在.user.DisplayName之前的正则表达式找不到'a'。
请更正此错误。
答案 0 :(得分:0)
请你试试这个......
RegexOptions options = RegexOptions.None;
Regex regex = new Regex(@"[ ]{2,}", options);
替换下面的
Regex.Replace(strDisplayName, @"\s\s+", " ").
带
strDisplayName.Replace(strDisplayName, @" ");
答案 1 :(得分:0)
要从字符串中删除空格,请使用以下行:
string yourStringNoSpaces = yourString.Replace(" ", String.Empty);
通过这种方式,您将使用:
_usersinapplicationroles.All().Where(a => a.ApplicationRoleId == iAppRoleId && a.User.DisplayName.Replace(" ", String.Empty) == strDisplayName.Replace(" ", String.Empty)).AsQueryable();
使用LinqPad中的简单查询测试上述行:
void Main()
{
List<Thing> things = new List<Thing>();
things.Add(new Thing(){
Name = "test"
});
string testString = "te st";
var result = things.Where (x => x.Name == testString.Replace(" ", String.Empty)).FirstOrDefault();
Console.WriteLine(result.Name);
}
class Thing
{
public string Name {get;set;}
}