[英]how to convert two dimensional integer array elements into string in c#?
我想在退出游戏之前用整数保存4 * 4网格的网格位置。
我以为我可以将数组转换为字符串,并使用播放器首选项保存以备下次使用。
我将数字保存在二维整数数组中。 现在如何在c#中将其转换为字符串。
将数组转换为string
时,可以使用StringBuilder
。 您可以用","
(或任何其他符号)分割行中的每个元素,而行可以用"."
分割"."
(或其他任何符号),因此当您将字符串解析为int[,]
数组时,您无需知道数组大小:
public string ArrayToString(int[,] toConvert)
{
StringBuilder sb = new StringBuilder();
for (int a = 0; a < toConvert.GetLength(0);a++)
{
for (int b = 0; b < toConvert.GetLength(1);b++)
{
sb.Append(toConvert[a,b].ToString() + ",");
}
sb.Append(".");
}
return sb.ToString();
}
然后,您可以从字符串恢复数组:
public int[,] ArrayFromString(string toConvert)
{
string[] rows = toConvert.Split('.');
string[] elements = rows[0].Split(',');
int[,] result = new int[rows.Length, elements.Length];
for (int a = 0; a < rows.Length; a++)
{
string[] items = rows[a].Split(',');
for (int b = 0; b < items.Length; b++)
{
result[a,b] = Convert.ToInt32(items[b]);
}
}
return result;
}
我假设您已经在下面的temp
变量中准备好了结果,
var output = new string[temp.GetUpperBound(0)+1];
for (int i = 0; i<=temp.GetUpperBound(0); i++)
{
var sb = new StringBuilder(temp.GetUpperBound(1)+1);
for (int j = 0; j<=temp.GetUpperBound(1); j++)
sb.Append(temp[i,j]);
output[i] = sb.ToString();
}
尝试这个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.