我有一个字符串,其中的字符串值由特殊字符“;”分隔 我需要拆分字符串并将每个值存储在单独的字符串中。在我的 ipStr 中,像 ServerName、DBName、TableNames 和 ColumnNames 这样的关键字是标识符,它不会改变,只有值可能会改变。
例如。
string ipStr = "ServerName=DevTestServer;DBName=CustomerSummary;TableNames=CustomerDetails&OrderDetails;ColumnNames=ID,CustName,OrderID;"
Run Code Online (Sandbox Code Playgroud)
现在我想分别拆分 ServerName、DBName、TableNames 和 ColumnNames 值,并将每个值存储在不同的字符串中。我在下面尝试过,但在找到 ServerName 后,识别 DBName 部分看起来很困难,而且它看起来也不像是正确的编码方式。
string ServerIdentifier = "ServerName=";
string separator = ";";
string serverName = ipStr.Substring(ipStr.IndexOf(ServerIdentifier), ipStr.IndexOf(delimiter));
Run Code Online (Sandbox Code Playgroud)
从 ipStr 获取如下值的最简单方法是什么?
string ServerName="DevTestServer";
string DBName="CustomerSummary";
string TableNames="CustomerDetails&OrderDetails";
string ColumnNames="ID,CustName,OrderID";
Run Code Online (Sandbox Code Playgroud)
SqlConnectionStringBuilder不起作用,因为ServerNameetc 不是连接字符串中的有效标记。
然而,一种低技术含量的方法是使用一种老式的Split、ToDictionary
var someWeirdStr = "ServerName=DevTestServer;DBName=CustomerSummary;TableNames=CustomerDetails&OrderDetails;ColumnNames=ID,CustName,OrderID;";
var results = someWeirdStr
.Split(';',StringSplitOptions.RemoveEmptyEntries)
.Select(x => x.Split('='))
.ToDictionary(x => x[0], x => x.ElementAtOrDefault(1));
Console.WriteLine(results["ServerName"]);
Console.WriteLine(results["DBName"]);
Console.WriteLine(results["TableNames"]);
Console.WriteLine(results["ColumnNames"]);
Run Code Online (Sandbox Code Playgroud)
输出
DevTestServer
CustomerSummary
CustomerDetails&OrderDetails
ID,CustName,OrderID
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
278 次 |
| 最近记录: |