gpt4 book ai didi

vb.net - 如何将一串键/值对转换为 HashTable 或 Dictionary 或者?

转载 作者:行者123 更新时间:2023-12-02 11:54:32 25 4
gpt4 key购买 nike

在 VB.NET 中,如何将以下字符串转换为某种键/值类型,例如哈希表、字典等?

"Name=Fred;Birthday=19-June-1906;ID=12345"

我想提取生日或 ID,而无需将字符串拆分为数组。

编辑:我不想将字符串拆分为数组,以防字符串的格式稍后发生变化。我无法控制字符串。如果有人改变顺序或添加另一个元素怎么办?

最佳答案

我目前无法对此进行测试,因为缺少 VB 编译器,但以下解决方案应该也可以工作,并且它的优点是不需要显式循环。它使用 Linq 方法 ToDictionary 和两个嵌套的 Split 操作:

Dim s = "Name=Fred;Birthday=19-June-1906;ID=12345"
Dim d = s.Split(";"c).Select(Function (kvp) kvp.Split("="c)) _
.ToDictionary( _
Function (kvp) kvp(0), _
Function (kvp) kvp(1))

首先,我们在外部分隔符(即分号)上进行分割。从结果数组中,我们再次通过分割来选择,这次是在 = 上。通过指定第一项成为键、第二项成为值(标识符 kvp 代表“键值对”),将生成的数组数组转换为字典。

由于我无法检查确切的 VB 语法,并且上述内容可能包含细微错误,因此这里是等效的 C# 代码(已测试正确性):

var s = "Name=Fred;Birthday=19-June-1906;ID=12345";
var d = s.Split(';').Select(kvp => kvp.Split('='))
.ToDictionary(kvp => kvp[0], kvp => kvp[1]);

关于vb.net - 如何将一串键/值对转换为 HashTable 或 Dictionary 或者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3077340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com