public void FormatData()
{
if (string.IsNullOrEmpty(ShapData)) return;
var lines = ShapData.Split('|');
if (lines.Length == 0) return;
var y = lines.Length;
var x = lines[0].Length;
Data = new int[x, y];
for (int _y = 0; _y < y; _y++)
{
var cols = lines[_y].ToList();
for ( int _x = 0; _x < x; _x++)
{
if (_x >= cols.Count)
{
Data[_x, _y] = 0;
continue;
}
Data[_x, _y] = cols[_x] - '0';
}
}
}
关注上文的 Data[_x, _y] = cols[_x] - '0';
赋值部分,这边使用的是一个ASCII码进行的减法。
原理是C#进行运算的时候,char类型直接可以当整形用,char类型0对应的值为48,1为49。
注意这两者需要都是char类型, 两者相减刚好就是需要的int型,换算速度快,而且简单。
