VB.NET 中具有两个属性的 DistinctBy

2023-12-01

看着选择列表中两个不同的属性可以使用具有两个属性的 DistinctBy 扩展方法。我尝试将其转换为 vb.net,但没有得到预期的结果

测试类:

Public Class Test
    Public Property Id As Integer
    Public Property Name As String

    Public Overrides Function ToString() As String
        Return Id & " - " & Name
    End Function
End Class

测试方法:

Private Sub RunTest()
    Dim TestList As New List(Of Test)

    TestList.Add(New Test() With {.Id = 1, .Name = "A"})
    TestList.Add(New Test() With {.Id = 2, .Name = "A"})
    TestList.Add(New Test() With {.Id = 3, .Name = "A"})
    TestList.Add(New Test() With {.Id = 1, .Name = "A"})
    TestList.Add(New Test() With {.Id = 1, .Name = "B"})
    TestList.Add(New Test() With {.Id = 1, .Name = "A"})

    Dim Result As IEnumerable(Of Test)

    Result = TestList.DistinctBy(Function(element) element.Id)
    '1 - A
    '2 - A
    '3 - A

    Result = TestList.DistinctBy(Function(element) element.Name)
    '1 - A
    '1 - B

    Result = TestList.DistinctBy(Function(element) New With {element.Id, element.Name})
    '1 - A
    '2 - A
    '3 - A
    '1 - A
    '1 - B
    '1 - A

    'Expected:
    '1 - A
    '2 - A
    '3 - A
    '1 - B
End Sub

在 vb.net 中使用匿名类型是否可能实现这一点? 做这样的事情:

Result = TestList.DistinctBy(Function(element) element.Id & "-" & element.Name)

正在工作,因此我猜测我在这里缺少匿名类型中的相等性。


你需要写Key在财产之前。喜欢

New With {Key element.Id, Key element.Name} in VB.

So,

Result = TestList.DistinctBy(Function(element) New With {Key element.Id, Key element.Name})

请参阅文档匿名类型在 VB 中了解更多详细信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VB.NET 中具有两个属性的 DistinctBy 的相关文章

  • 如何阻止访问任何文件或exe vb.net?

    如何阻止和取消阻止文件或可执行文件在 vb net 运行时永久打开 您可以使用此代码 并且可以使用Environment UserName获取用户名 这将锁定任何类型的文件 也将锁定文件夹 Dim FSS As FileSystemSecu
  • 更改数据网格列顺序或索引

    这是我无法相信我无法弄清楚的事情 请告诉我我错过了一些简单的事情 我有一个数据网格 我用 LINQ 填充它以及一个自定义类来向其中添加数据 之后 我需要按特定顺序排列数据 它似乎忽略了我 如何更改列属性 例如索引等 这是我正在使用的 LIN
  • 如何在.NET中扩展环境变量%CommonProgramFiles%\system\

    我遇到一种情况 我需要通过读取注册表设置来返回目录路径 注册表值返回我以下格式的路径 CommonProgramFiles System web32 dll 而消费者代码期望它的格式为 C Program Files Common File
  • asp.net vb 用户控件在调用页面上引发事件

    我正在尝试了解用户控件 我创建了一个具有文本框和按钮的用户控件 我想要做的是 当我单击用户控件中的按钮时 在 aspx 页面中填充标签 我知道我可以在页面上有一个按钮 使用用户控件上的一些属性来获取该信息 但我想知道如何使用用户控件的按钮来
  • C#“var”关键字在 VB.NET 中的等价物是什么?

    例如 我如何获得 VB NET静态类型局部变量是static赋值右侧的表达式的类型 像这样 Dim http msdn microsoft com en us library 7ee5a7s1 aspx我的变量 3 你还需要 选项推断 ht
  • 命令式代码与声明式代码[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我试图理解命令式范例和声明式范例之间的区别 因为我必须对 Visual Basic 进行分类 NET 在不同的范式中 除了面向对象之外
  • 将Access数据库中存储的图片加载到VB.NET程序中

    我有一个通过数据源与 VB 项目链接的 Access 数据库 在其中一个表的数据库中 我有一个 OLE 对象字段 我在此字段中保存了 BMP 格式和 JPG 格式的图片 我遇到的问题是将这张图像加载到我的应用程序中 这就是我希望能够做到的
  • 我刚刚在 Visual Basic 中运行的 COM 对象的 CLSID 是什么

    我需要知道我刚刚运行的 COM 对象的 CLSIDCreateObject xxx xxx 我怎么才能得到它 蒂亚 拉法尔 我认为您无法直接从 VB 本身获取该信息 例如 作为调用的副作用或次要结果 CreateObject 但你可以阅读注
  • 从空白启动时 VSTO 功能区不显示解决方案

    如果我从 文件 新建项目 菜单创建一个新的 Excel 2013 和 2016 VSTO 加载项 项目 然后单击 项目 添加新项目 gt 功能区 可视化设计器 则一切正常 我启动了应用程序 我的功能区显示在 Excel 中 但是 如果我首先
  • 由于继承抽象类而禁用设计器?

    我有一个项目的解决方案 那个项目中有 40 或 50 种形式 我制作了 4 个基本形式 所有其他形式都可以继承 所有 4 个基本表单都继承 System Windows Forms Form 几乎 90 的形式继承了前 2 个基本形式之一
  • 将字符串转换为双精度 - VB

    VB中有没有一种有效的方法来检查字符串是否可以转换为双精度型 我目前正在尝试将字符串转换为双精度型 然后查看它是否引发异常 但这似乎减慢了我的申请速度 Try if number then format it current CDbl x
  • 如何四舍五入到一半,始终为正方向? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何实现以下舍入 0 0126083
  • 通过 VB.NET 创建/编辑文本文件

    如何在 VB NET 中编写以下算法的代码 Procedure logfile if C textfile txt exist then open the textfile else create the textfile end if g
  • 下载需要使用 vb.net/c# 进行身份验证的文件?

    与 CSV 文件类似 可以从以下位置下载http download finance yahoo com d quotes csv s RHT 如何下载需要身份验证的文件 我可以简单地使用 My Computer Network Downlo
  • 在 Visual Basic 中将窗体放置在屏幕右下角

    当表单加载时 如何将表单定位在屏幕的右下角 我正在使用 Visual Basic 2010 Express Thanks 编辑 我这样做了 看起来效果很好 Dim x As Integer Dim y As Integer x Screen
  • 没有为 1 个或多个必需参数给出值。更新SQL

    我正在编写一个程序 当用户在列表视图上选择记录时 该程序会更新密码或积分 我收到错误 没有为 1 个或多个必需参数给出值 我不知道如何纠正 我是否遗漏了一些明显的东西 Dim sql As String UPDATE Users SET P
  • 插入具有只读主键列的表

    我正在使用一个使用 sql server 数据库的应用程序 我试图在表中插入一行 如下所示 该表有一个主键 prodNum 这是自动生成的密钥 当我尝试向表中插入一行时 如下所示 在行中intResult oSglProdTableAdap
  • Outlook 加载项,无法读取未定义的属性“BeginRequestEventArgs”

    我使用 Visual Studio 开发了 Outlook 插件 我的插件有一个按钮 用于填充会议邀请正文中的详细信息并添加所需的与会者 这在 99 的情况下都有效 但是 时不时地它会给我下面的 JavaScript 错误 Uncaught
  • VB.NET vNext 中的迭代器以及 C# 中迭代​​器的限制

    我刚刚在上看到异步CTP网站 http msdn microsoft com en us vstudio async aspxVB NET 的下一个版本将有迭代器 我猜它们包含了迭代器 因为重写过程与新的迭代器所使用的过程类似 async
  • 如何在VB函数中添加可选参数/默认值参数?

    如何在 Visual Basic 中创建一个包含可选参数的方法 Use the Optional关键字并提供默认值 可选参数必须是最后定义的参数 以避免创建不明确的函数签名 Sub MyMethod ByVal Param1 As Stri

随机推荐

  • 使用“rle”函数和“dplyr”“group_by”命令来映射分组变量

    我有一个包含三列的数据框 其信息类似于下面给出的数据框 现在我希望根据列中的信息提取信息搜索模式a 基于少数开发人员 thelatemail 和 David T 的支持 我能够识别该模式rle函数 请看这里 使用 rle 函数识别模式 现在
  • 正则表达式 match() 在 FF/Chrome 中有效,但在 IE 8 中无效

    我有以下 jQuery 调用 它在 FF Chrome 中返回匹配项 但在 IE 8 中返回 null 这是小提琴如果您想亲自尝试一下 这是不可解决的 不灵活的 任性的代码 var m somediv text match d d sof
  • 如何锁定 InnoDB 表以防止在复制该表时进行更新?

    我想暂时锁定一个表以防止其他并发进程对其进行更改 原因是该表将被复制到临时表 进行更改 然后复制回来 实际上原始表被删除 新表被重命名 然后 在所有这些完成之后 我想解锁该表 并希望在锁定恢复期间尝试进行任何操作 我还需要能够从已锁定的表中
  • Odoo 9继承js文件

    我需要更改标题addons web static src js web client js this set title part zopenerp Odoo 是否可以在新的自定义模块中继承js文件并将 Odoo 更改为 Odoo 9 您可
  • Delphi IDE 不可见

    我双击Delphi上的图标desktop 但是IDE没有出现 展望Task Manager列出BDS exe出现在Processes列表 而它应该出现在Applications列表 有谁知道为什么会发生这种情况 注 IDE我目前使用的版本是
  • 如何在java中检查用户是否属于某个AD组

    我知道这一定是一个非常简单的问题 但我是 java 新手 发现很难获得我需要的确切代码 我需要做的是从 Windows 获取当前登录的用户名 并检查该用户是否属于需要在某些配置文件中定义的特定 AD 用户组 在C 中很容易做到 但我不知道如
  • 如何判断一个点是在线的右侧还是左侧

    我有一组要点 我想将它们分成两组不同的组 为此 我选择两点 a and b 并在它们之间画一条假想线 现在我想将这条线左边的所有点放在一组中 将这条线右边的点放在另一组中 我如何判断任何给定点z是在左边还是在右边 我试图计算之间的角度a z
  • 使用 DBCP 池以服务器模式远程连接到 H2 数据库

    我正在尝试创建一个嵌入式 H2 服务器 我也可以远程访问该服务器并使用 Tomcat DBCP 池 这是我生成 dataSource 的代码 Produces ApplicationScoped public DataSource getD
  • 节省消息中的大文件

    我使用 thrift 通过 tcp 进行二进制协议 用于发送和读取文件 最大大小为 64MB 节俭能做到这一点吗 我曾想过使用 struct SomeMessage 1 byte data 节俭的效率如何 编组 解组 通过电线发送 Thri
  • pandas python 中字符串的精确匹配

    我在数据框中有一列 例如 df A 0 Good to 1 Good communication EI email protected 1 SAP ECC Project System EI ram va email protected 2
  • 带有 codeigniter 的移动和桌面 Web 应用程序

    我想为移动和桌面构建我的项目的两个版本 我正在使用 codeigniter 2 0 2 正在寻找一种让项目的移动和桌面版本共享相同模型 控制器 库和助手的方法 我还设置了一个子域 m xyz com 来指向 public html 文件夹上
  • 如何获取列表中字符串的公共前缀[重复]

    这个问题在这里已经有答案了 我需要知道如何识别列表中字符串的前缀 例如 list nomad normal nonstop noob 它的答案应该是 no 因为列表中的每个字符串都以 no 开头 我想知道是否有一种方法可以同时迭代列表中字符
  • 设置TableRow下TextView的layout_weight

    这个问题实际上与这篇文章相关以编程方式设置 TextView 的布局权重 根据答案 我只需要如下设置 TextView 布局参数并设置stretchColumn 属性 但是通过将以下代码添加到我的代码中 它会使 textView 从表布局中
  • 路径上的 d3.js 工具提示

    我读到的很多关于 d3 js 和工具提示的内容都提到了图表上的各个点 相反 我的图表使用一条长路径进行渲染 我想知道如何将鼠标悬停方法应用于这样的路径 然后我将相应地绑定一个工具提示 div http jsfiddle net ericps
  • 基于具有不同索引的参考数据帧连接数据帧中的特定列对

    我的目标是根据以下对连接数据帧 源 中的列 在单独的数据帧 参考 中进行了描述 生成的数据框应将源中的列标题替换为参考中的索引标签 用于引用的数据框如下所示 df1 pd DataFrame dict FIRST Alpha Alpha C
  • 使用 Indy 执行 IPv6 反向 DNS 查找

    我正在使用 Indy 使用以下代码执行反向 IPv4 查找 function ReverseDNSLookup const IPAddress String const DNSServer String Timeout Retries In
  • Twitter 的 Bootstrap 移动版:更多专栏

    关于twitter bootstrap 我目前有一个设计 在网格中显示图片 div class row fluid div class image span 4 div div class image span 4 div div clas
  • 稀疏矩阵图 matlab

    我有一个 5000 5000 稀疏矩阵 有 4 个不同的值 我想用 4 种不同的颜色可视化非零元素 以便我可以识别这些值的比率以及它们之间的关系 我使用imagesc但我不能很好地识别不同的值 特别是比率较小的值 我认为如果我为每个值使用一
  • plotly choropleth 地图:显示国家/地区名称

    考虑以下 R 代码以绘图方式生成分区统计图 devtools install github ropensci plotly library plotly df lt read csv https raw githubusercontent
  • VB.NET 中具有两个属性的 DistinctBy

    看着选择列表中两个不同的属性可以使用具有两个属性的 DistinctBy 扩展方法 我尝试将其转换为 vb net 但没有得到预期的结果 测试类 Public Class Test Public Property Id As Integer