如何修剪具有多个空格的数据库数据?

时间:2013-12-20 11:19:39

标签: c# asp.net linq

我从数据库获取数据,我需要检查用户输入的匹配数据。 不幸的是,由于数据库记录中有这么多空格,我没有得到它。

_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'。

请更正此错误。

2 个答案:

答案 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;}
}