我正在解析一些WMI查询结果,Powershell的Get-CimInstance中的一些值为空,从C#的ManagementObjectSearcher中获取"\0"的值。
我试图过滤掉它们,用空/空字符串替换它们,但是我遇到了一些我不完全理解的东西:
s = "\0"; // assigned by ManagementObjectSearcher, value displayed by VS 2019 debugger
var t1 = s == "\0"; // true
var t2 = s == @"\0"; // false
var t3 = string.IsNullOrWhiteSpace(s); // falses值在调试器中显示为"\0",但当我单击它时,它没有显示任何内容(空字符串)。据我所知,\是用来转义特殊字符的,但是我没有找到任何关于"\0"的信息。
什么是最好的方法,以摆脱所有的“空但不是空”的价值观,像这样的?
发布于 2021-12-16 10:13:31
它基本上是U+0000 --“空”字符。(完整的列表请参见C#转义序列的文档化。)您可以正常使用string.Replace:
string filtered = original.Replace("\0", "");https://stackoverflow.com/questions/70377198
复制相似问题