简化 vb.net 中的列表初始化

2024-01-05

有哪些选项可以简化List初始化以消除重复New MyObject() With以及参数名称,例如Value1? 我需要创建 50 个对象的列表,因此有很多重复的、可能不必要的代码。

我使用最新的 Visual Studio 2019 (16.2.3)。

Public Class MyObject
    Public Property Value1 As Int32
    Public Property Value2 As Int32
End Class

Dim Test As New List(Of MyObject) From {
    New MyObject() With {.Value1 = 1, .Value2 = 1},
    New MyObject() With {.Value1 = 2, .Value2 = 2},
    New MyObject() With {.Value1 = 3, .Value2 = 3}
}

以下代码演示如何向泛型 List 类型添加扩展方法,以便可以使用集合初始值设定项添加类型 T 的对象。扩展方法使您能够使用缩短的集合初始值设定项语法:

Imports System.Runtime.CompilerServices

Module MyExtensions_List

<Extension()>
Sub Add(ByVal list As List(Of MyObject), ByVal v1 As Integer, ByVal v2 As Integer)
    list.Add(New MyObject With {.Value1 = v1, .Value2 = v2})
End Sub

End Module

现在,您可以简单地将其用作:

Dim list1 = New List(Of MyObject) From { {1, 10}, {2, 20}, {3, 30} }

Note: The Add方法可以是如图所示的扩展方法,或者,它可以显式定义为您要使用的类的普通公共方法(MyObject here)!

Ref: 集合初始化器 https://learn.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/collection-initializers/ and 如何:创建集合初始值设定项使用的添加扩展方法 https://learn.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/collection-initializers/how-to-create-an-add-extension-method-used-by-a-collection-initializer

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

简化 vb.net 中的列表初始化 的相关文章

  • 中继器按钮命令参数为空字符串

    我对这个失去了理智 即使命令参数已设置 我的按钮也会获得空字符串的命令参数 我已经验证它在调试模式下设置为正确的 ID 但是当我稍后在中继器 ItemCommand 事件中访问此命令参数时 命令参数是空字符串 我不知道为什么 我最终得到了
  • 使用 LINQ 和 C# 的随机数组

    我在 MSDN 杂志上读到一篇关于使用LINQ 中的枚举类 http msdn microsoft com en us magazine cc700332 aspx生成随机数组 本文使用 VB NET 我不能立即确定 C 中的等效项是什么
  • 在列表列表中查找共同元素

    我有一个名为 wordlist 的单词列表列表 如下所示 dog cat sheep rabbit kiss time cow pig bomb cat sheep cake boy new 我想找到所有子列表中的共同元素 因此 我期望的上
  • 从 VB.net 中的列表框中删除项目

    我有两个ListBox1 and ListBox2 我已将项目插入到ListBox2通过选择以下代码ListBox1 item da6 New SqlDataAdapter select distinct component type fr
  • VB.net 中 _ 下划线作为变量前缀的含义

    Visual Basic中下划线的含义是什么 我有这个代码 Private isAuthenticated As Boolean 这和这样做是一样的吗 Private isAuthenticated As Boolean 或者在名称前面添加
  • 将本地 HTML 文件/代码导入 Web 浏览器

    我正在尝试让本地 HTML 文件显示在WebBrowser在 VB NET 程序中 我正在使用下面的代码 但它似乎不起作用 我不明白为什么 first method WebBrowser1 Navigate index html secon
  • 将由空格分隔的整数字符串更改为 int 列表[重复]

    这个问题在这里已经有答案了 我该如何做类似的东西 x 1 2 3 45 87 65 6 8 gt gt gt foo x 1 2 3 45 87 65 6 8 我完全陷入困境 如果我按索引执行此操作 那么超过 1 位数字的数字将被分解 请帮
  • 在Python中将字符串转换为字典或列表?

    在Python中将此字符串转换为列表或字典 u f i r s t n a m e u j o h n u l a s t n a m e u s m i t h u a g e 2 0 u m o b
  • “更新/取消”按钮不会出现在模板字段编辑按钮中

    当您使用 Gridview 的每一行创建编辑按钮时CommandField单击后它会显示更新 取消按钮 以便您可以接受 取消更改 但是 我想要一个带有工具提示文本的编辑按钮 因为CommandField没有工具提示属性 我用过Templat
  • 按属性对对象列表进行排序 C#

    我有这门课 public class Leg public int Day get set public int Hour get set public int Min get set 我有一个获取腿列表的函数 称为 GetLegs Lis
  • 如何判断一个类是否被某个特定属性修饰

    我试图确定接口是否用特定属性装饰 例如我有以下界面
  • 动态版本控制

    我有一种情况 我希望版本控制在构建时是动态的 版本图案
  • 无法使用 dataformatstring 格式化日期时间

    由于某种原因 我无法在网格视图中格式化日期文本
  • 将 .NET P/Invoke 代码组织为 Win32 API 的最佳实践

    我正在 NET 中重构一个大型且复杂的代码库 该代码库大量使用 P Invoke to Win32 API 该项目的结构不是最好的 我发现 DllImport 语句遍布各处 经常为同一函数重复 并且还以多种方式声明 导入指令和方法有时声明为
  • 寻找嵌套列表中的最低值?

    我正在尝试编写一个函数 它接受一个列表并可以打印该列表中的最小整数 现在我试图弄清楚在嵌套列表中该怎么做 如果最低数字位于这些嵌套列表之一中 那么总的来说它将打印该数字 我的代码在这里 def listMin list2 3 4 2 99
  • 使用 VB.NET 检查 Word 文档中的字体样式

    我想使用vb net检查一个word文件 并检查文档中的样式是否正确 我必须在word文档中检查这些表达式 a Verdana 16 pt Bold Red b Verdana 12 pt Bold Italic Blue c Verdan
  • 使用部分函数短路列表映射

    因此 我创建了一个名为 tryMap 的函数 如下所示 tryMap with failure and success continuations let rec tryMapC R gt U list gt R gt T gt U opt
  • 将其元素添加到另一个列表后清除列表

    我正在做一个程序 它获取更多句子作为参数 我制作了 2 个列表 一个称为 propozitie 其中包含每个句子 另一个称为 propozitii 其中包含所有句子 问题是 当我在遇到 后清除 propozitie 列表时 它也会清除 pr
  • 在javascript中访问隐藏字段值

    我的表单中有一个隐藏字段 我正在服务器上设置隐藏字段的值并尝试从 javascript 访问该值 我收到错误 无法获取属性 值 的值 对象为 null 或未定义 如果我查看源代码 则会设置隐藏字段值 并且隐藏字段的 ID 与我正在调用的 I
  • VB.NET 中的模块变量何时实例化?

    我想知道在程序的生命周期中 模块中的变量将被初始化 如下例所示 Module Helper Friend m Settings As New UserSettings Sub Foo End Sub Sub Bar End Sub End

随机推荐