【发布时间】:2015-07-19 12:34:09
【问题描述】:
我有一个
int[,] map = int[100, 100];
还有一个
String mapString;
mapString 只包含大量数字(除了数字之外没有其他字符)。
我现在想用 mapString 的第一个字符分配数组 (map[0,0]) 中的第一个值,第二个值( map[0,1]) 与 mapString 的第二个字符,依此类推。我使用以下代码:
int currentposition = 0;
for (int x = 0; x < 100; x++)
{
for (int y = 0; y < 100; y++)
{
map[x, y] = ArrayTest.Properties
.Settings
.Default
.mapSaveSetting
.ElementAt(currentposition);
currentposition++;
}
}
现在发生的事情几乎是我所希望的。 问题是它为每个值分配了两个数字而不是一个。我也无法弄清楚他使用的数字,因为它们不是我的 mapSaveSetting 中的数字,但我可以自己处理。
我真正不明白的唯一问题是执行此 for 循环后每个值都包含两个数字。为什么会这样? ElementAt(int) 只返回一个字符,对吧?
在我看来这确实是一个逻辑错误,但我找不到它。如果我只是在我的思维方式上犯了一个愚蠢的错误,请不要冒犯。
编辑 由于现在似乎不清楚是什么问题,我将添加一个示例。
map[0, 0] == 42
...可能是一个输出。即使字符串以例如开头4245634 这没有意义,因为 ElementAt(int) 应该只返回 4,而不是 42,对吧?
【问题讨论】:
-
"每个值包含两个数字" -> 这对我来说没有多大意义,请澄清(在您的问题中添加一些输入/输出示例值)跨度>
-
添加它,希望这能清除它
-
嗯,我想我现在明白你的问题了。我会写一个答案。