我有一个以分号分隔的值列表,例如:
strins s = "param1=true;param2=4;param3=2.0f;param4=sometext;";
我需要一个功能:
public bool ExtractBool(string parameterName, string @params);
public int ExtractInt(string parameterName, string @params);
public float ExtractFloat(string parameterName, string @params);
public string ExtractString(string parameterName, string @params);
.net中是否有特殊功能可以帮助我使用以分号分隔的列表?
PS:参数名称在列表中相等。
答案 0 :(得分:3)
作为一个起点,您需要的是String.Split()方法 - 它会将您的字符串拆分为字符串数组。
你会在网上找到大量这样的例子。
答案 1 :(得分:1)
对于字符串更好,您可以使用Split(',');
您可以尝试使用拆分逗号
string s ="param1=true;param2=4;param3=2.0f;param4=sometext;";
string[] sArray = s.Split(',')
答案 2 :(得分:1)
这是一种更好的方法,可以避免使用大量空数组元素:
string lsToString = "Your String Here";
string[] laChars = { "," };
string[] laTo = lsToString.Split(laChars, StringSplitOptions.RemoveEmptyEntries);
分割字符串后可以更轻松地使用它,因为您不必担心空元素。
皮特
答案 3 :(得分:0)
我需要做同样的事情,以便可以从蔚蓝的连接字符串中提取名称/值对。
实现与实现之间的唯一细微差别是重载,即在使用重载确保我们只能得到两个结果的情况下,在等号上拆分参数。
这意味着当参数值包含'='字符时,它们将被忽略。 即仍然可以在“ AccountKey = ABCDEFGHI ==;”之类的值上使用
希望这可以节省一些时间!
public class StorageConfiguration
{
public string StorageAccountConnectionString { get; set; }
public StorageConfiguration(string storageAccountConnectionString)
{
StorageAccountConnectionString = storageAccountConnectionString;
}
public string GetConnectionStringItem(ConnectionStringItem connectionStringItem)
{
if (string.IsNullOrWhiteSpace(StorageAccountConnectionString)) throw new ArgumentException("StorageAccountConnectionString is empty");
var items = StorageAccountConnectionString.Split(";", StringSplitOptions.RemoveEmptyEntries).ToDictionary(x=> x.Split("=", 2)[0], y=> y.Split("=", 2)[1]);
return items[connectionStringItem.ToString()];
}
public enum ConnectionStringItem
{
DefaultEndpointsProtocol,
BlobEndpoint,
AccountName,
AccountKey
}
}