首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用模糊搜索查找重复项的vb.net Linq语句

使用模糊搜索查找重复项的vb.net Linq语句
EN

Stack Overflow用户
提问于 2021-07-13 10:29:43
回答 1查看 68关注 0票数 0

我有一个数据表,其中包含:

作为整数的

  • ID =主键.
  • 名称为
  • .

我有一个函数可以在表中找到重复的名称。

代码语言:javascript
运行
复制
Private Function DuplicateComputerNames() As String
    Dim ret As String = $"Duplicate Computer Names found in Table Computer.{vbCrLf}"
    Dim computerTable As DataTable
    computerTable = ComputerTableAdapter.GetData
    Dim duplicates = computerTable.AsEnumerable().GroupBy(Function(i) i.Field(Of String)("Name")) _
        .Where(Function(g) g.Count() > 1).Select(Function(g) g.Key)
    For Each d In duplicates
        ret = $"{ret}{vbTab}{d}{vbCrLf}"
    Next
    Return ret
End Function

这工作得很好。

现在,有时名称的前面有“(池)”。“膝上型电脑-55(池)”我需要一个功能,可以找到重复的笔记本电脑-55部分。也就是说,如果有笔记本-55和膝上型计算机-55(池)

我原以为这段代码能起作用,但显然不行。

代码语言:javascript
运行
复制
Private Function PoolComputerNames() As String
    Dim ret As String = $"Possible Duplicate Computer Names found in Table Computer.{vbCrLf}"
    Dim computerTable As DataTable
    computerTable = ComputerTableAdapter.GetData
    Dim duplicates = computerTable.AsEnumerable().GroupBy(Function(i) i.Field(Of String)("Name")) _
        .Where(Function(g) g.Count() > 1).Select(Function(g) g.Key.Split("("c)(0).Trim())
    For Each d In duplicates
        ret = $"{ret}{vbTab}{d}{vbCrLf}"
    Next
    Return ret
End Function

希望有人能指出正确的方向。谢谢。

EN

Stack Overflow用户

回答已采纳

发布于 2021-07-14 14:19:47

感谢jmcilhinney的评论,我设法解决了我的问题。

代码语言:javascript
运行
复制
Private Function PoolComputerNames() As String
    Dim count As Integer = 0
    Dim ret As String = $"[count] possible duplicate Computer Names found in Table Computer.{vbCrLf}"
    Dim computerTable As DataTable
    computerTable = ComputerTableAdapter.GetData
    Dim duplicates = computerTable.AsEnumerable().GroupBy(Function(i) i.Field(Of String)("Name").Split("("c)(0).Trim()) _
        .Where(Function(g) g.Count() > 1).Select(Function(g) g.Key)
    For Each d In duplicates
        count += 1
        ret = $"{ret}{vbTab}{d}{vbCrLf}"
    Next
    ret = ret.Replace("[count]", $"{count}")
    Return ret
End Function
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68360711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档