多字符串(双空格终止的空字符串字符串)在Windows API中很常见.将从API返回的多字符串转换为C#字符串集合的好方法是什么,反之亦然?
我对正确处理字符编码特别感兴趣(稍后是Windows XP).
以下方法似乎可以创建多字符串,但我没有解码多字符串的示例.
static string StringArrayToMultiString(
ICollection<string> stringArray
)
{
StringBuilder multiString = new StringBuilder();
if (stringArray != null)
{
foreach (string s in stringArray)
{
multiString.Append(s);
multiString.Append('\0');
}
}
return multiString.ToString();
}
Run Code Online (Sandbox Code Playgroud)
这可能是天真的,但如何:
static string[] MultiStringToArray(string multiString)
{
return multiString.TrimEnd('\0').Split('\0');
}
Run Code Online (Sandbox Code Playgroud)
另外 - 你不是错过了决赛如果数组是一个\0
(你说的是双空终止)StringArrayToMultiString
吗?params string[]
数组,可能更容易调用- 类似于:
static string StringArrayToMultiString(params string[] values)
{
if (values == null) throw new ArgumentNullException("values");
StringBuilder multiString = new StringBuilder();
foreach (string s in values)
{
multiString.Append(s);
multiString.Append('\0');
}
return multiString.ToString();
}
Run Code Online (Sandbox Code Playgroud)
[关于最终\ 0的澄清后编辑]
归档时间: |
|
查看次数: |
6214 次 |
最近记录: |