LINQ和REGEX.REPLACE

LINQ和REGEX.REPLACE,regex,linq,str-replace,Regex,Linq,Str Replace,我试图从数据库中提取地址记录,并按地址将它们分组。 够简单吧 我遇到的问题是位置字段的格式是这样的 BUILDING: some building description ADDRESS: 555 1st Street 或 存在多个地址、城市和州匹配的实例。但这座建筑:描述却没有。因此,我需要删除之前的任何内容,包括地址: 这些似乎很简单。但我似乎无法让它发挥作用。这是我现在的LINQ Dim addressesP1 = _ (From R In tickets _

我试图从数据库中提取地址记录,并按地址将它们分组。 够简单吧

我遇到的问题是位置字段的格式是这样的

BUILDING:  some building description
ADDRESS: 555 1st Street

存在多个地址、城市和州匹配的实例。但这座建筑:描述却没有。因此,我需要删除之前的任何内容,包括地址:

这些似乎很简单。但我似乎无法让它发挥作用。这是我现在的LINQ

Dim addressesP1 = _
        (From R In tickets _
         Where R.PRIORITY = 1 _
         Group R By R.Z_LOC_CITY, R.Z_LOC_STATE, _
         ZLOC = Regex.Replace(R.Z_LOCATION, "/.+address:/is", "") _
         Into Group _
         Where Group.Count >= P1Count _
         Select ZLOC, Z_LOC_CITY, Z_LOC_STATE, thecount = Group.Count)

For Each c In addressesP1
        list.Add( _
                New TicketAddress With _
                     {.z_location = c.ZLOC, _
                      .z_loc_city = c.Z_LOC_CITY, _
                      .z_loc_state = c.Z_LOC_STATE, _
                      .thecount = c.thecount() _
                      })
    Next


    Return list
运行时,我收到以下错误:

方法“System.String Replace(System.String、System.String、System.String)”不支持到SQL的转换


您是否希望在SQL中执行所有查询?如果是这样,我想你会失望的——我认为LINQtoSQL不支持正则表达式

如果您愿意在过程中执行查询的其余部分,可以在第一个
Where
子句之后使用
AsEnumerable()


请注意,通过执行另一次选择,然后调用
ToList
,您可以更轻松地构建列表。

您希望在SQL中执行所有查询吗?如果是这样,我想你会失望的——我认为LINQtoSQL不支持正则表达式

如果您愿意在过程中执行查询的其余部分,可以在第一个
Where
子句之后使用
AsEnumerable()


请注意,通过执行另一个Select,然后调用
ToList
,您可以更轻松地构建列表。

我可以利用您的建议创建一个结果的通用列表(在regex之前,并在将项目添加到列表中时使用regex)。然后我得到了这个列表,创建了一个新的实例IEnumerable,并将结果分组在一起以获得最终结果。我能够利用您的建议创建一个结果的通用列表(在正则表达式之前,并在将项目添加到列表中时使用正则表达式)。然后,我使用该列表,创建了一个新实例IEnumerable,并将结果分组以获得最终结果。
Dim addressesP1 = _
        (From R In tickets _
         Where R.PRIORITY = 1 _
         Group R By R.Z_LOC_CITY, R.Z_LOC_STATE, _
         ZLOC = Regex.Replace(R.Z_LOCATION, "/.+address:/is", "") _
         Into Group _
         Where Group.Count >= P1Count _
         Select ZLOC, Z_LOC_CITY, Z_LOC_STATE, thecount = Group.Count)

For Each c In addressesP1
        list.Add( _
                New TicketAddress With _
                     {.z_location = c.ZLOC, _
                      .z_loc_city = c.Z_LOC_CITY, _
                      .z_loc_state = c.Z_LOC_STATE, _
                      .thecount = c.thecount() _
                      })
    Next


    Return list