输入:

string param = "1100,1110,0110,0001";

输出:
int[] matrix = new[]
    {
              1,1,0,0,
              1,1,1,0,
              0,1,1,0,
              0,0,0,1
    };

我做了什么?
首先,我将字符串拆分为字符串[]。
string[] resultantArray = param.Split(',');

创建了一个方法,我在其中传递了字符串[]。
var intArray = toIntArray(resultantArray);

static private int[] toIntArray(string[] strArray)
{
    int[] intArray = new int[strArray.Length];
    for (int i = 0; i < strArray.Length; i++)
    {
        intArray[i] = int.Parse(strArray[i]);
    }

    return intArray;
}

问题?
我尝试了很多解决办法,但没有一个能帮到我。
结果是数组没有前导零。

最佳答案

确定所有数字:.Where(char.IsDigit)
将所选的char-数字转换为integer.Select(x => x-'0')(这不像int.ParseConvert.ToInt32那样漂亮,但速度非常快)
代码:

string param = "1100,1110,0110,0001";
int[] result = param.Where(char.IsDigit).Select(x => x-'0').ToArray();

正如codesinchaos所说,如果输入中有“AA>类型的数字,如泰语数字字符:‘{’‘‘’’‘’‘’’‘’’‘’’,在char.IsDigit == true中-如果您需要处理这种特殊情况,则只能允许01在您的结果.Where("01".Contains)中,这可能导致错误。

关于c# - 将string []转换为Int []而不会丢失前导零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43142179/

10-12 13:00