在C#中将字符串转换为数组时,如何用0值替换空位置?

gdm*_*hon 0 c# arrays string

更新:2017年7月26日

我有一个字符串,其中的值以逗号分隔.但是在某些情况下,它会,,连续出现双逗号.但是当我使用string.split(',')它时,它返回一个没有该索引值的数组.例如

string str = "12,3,5,,6,54,127,8,,0,98," 
Run Code Online (Sandbox Code Playgroud)

它以这种方式打破阵列

str2[0] = 12
str2[1] = 3
str2[2] = 5
str2[3] = ""
str2[4] = 6
str2[5] = 54
str2[6] = 127
str2[7] = 8
str2[8] = ""
str2[9] = 0
str2[10] = 98
str2[11] = ""
Run Code Online (Sandbox Code Playgroud)

看这里我得到一个或多个空值的数组.所以当我分割字符串时,我想在每个空位置放一个0.在这里,我发现了一些可以跳过空值的东西

str .Split(',', StringSplitOptions.RemoveEmptyEntries) 
Run Code Online (Sandbox Code Playgroud)

但是我没有发现这样的解决方案将默认值设置为空索引.我已经完成了之前的问题Q1,Q2,但这些对我来说无效.我正在使用C#Web应用程序.Net framework

Bal*_*thu 5

请尝试以下代码:

您可以使用对象的IEnumerable扩展方法(Select)String.

string str = "12,3,5,,6,54,127,8,,0,98";
var strVal = str.Split(',').Select(s => string.IsNullOrEmpty(s) ? "0" : s);
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用==""而不是`IsNullOrEmpty`.条目永远不会为空. (2认同)