gpt4 book ai didi

.net - 如何转换;将带有 Key=Value 的字符串分隔成 .net 中的 KeyValue 对?

转载 作者:行者123 更新时间:2023-12-02 08:51:03 25 4
gpt4 key购买 nike

如何将以下字符串拆分为键值对/哈希表...

"Id=1000;Name=xyzabc;DB=1.2.3.4;DBUserName=admin;DBPassword"

我知道这可以通过使用 string.Split() 来完成(一个带有“;”,然后每个结果都带有“=”)。我正在寻找一种简单有效的方法。

简而言之,除了字符串操作之外,是否有一种有效的方法来转换上面突出显示的文本以访问类似这样的值...

someObject["Id"];//It should return 1000 
someObject["Name"];//It should return xyzabc
someObject["DB"];//It should return xyzabc ..............

框架是否有任何内置类可以做到这一点?

例如:如果我们将连接字符串分配给 SQLConnectionBuilder,SQLConnectionBuilder 会将 DBName、UserName、Password 拆分到它的属性中

最佳答案

以您关于 DbConnectionStringBuilder 的示例为例,如果您查看内部结构,您会发现一个名为 DbConnectionOptions.GetKeyValuePair 的方法,它不适合胆小的人。跳过那个,尝试一些简单的事情:

string input = "Id=1000;Name=xyzabc;DB=1.2.3.4;DBUserName=admin;DBPassword";

var kvp = input.Split(';')
.Select(s => s.Split('='))
.ToDictionary(s => s.First(), s => s.Last());

你会得到一个看起来像这样的字典输出:

Key=Id, Value=1000
Key=Name, Value=xyzabc
Key=DB, Value=1.2.3.4
Key=DBUserName, Value=admin
Key=DBPassword, Value=DBPassword

当然,如果您的字符串中有重复键,那么字典将不起作用。您可能会考虑编写自己的扩展,例如 .ToKeyValuePair()。当您不提供值时,我不太确定如何修复 key = value,但我太累了,无法认真考虑。

关于.net - 如何转换;将带有 Key=Value 的字符串分隔成 .net 中的 KeyValue 对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8529200/

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