Вот мой код
public int[,] GetBigEyeRoad(int x)
{
int[,] arrayBigEyeResult = new int[6, x];
Array.Copy(arrayBigEyeRoad, arrayBigEyeResult, arrayBigEyeRoad.GetLength(0) * arrayBigEyeRoad.GetLength(1));
return arrayBigEyeResult;
}
И называя это в моем основном классе вот так
int[,] arrayBigEyeRoad = bsb.GetBigEyeRoad(104);
string s = "";
for (int y = 0; y < arrayBigEyeRoad.GetLength(0); y++)
{
for (int x = 0; x < arrayBigEyeRoad.GetLength(1); x++)
{
s += string.Format("{0:D2}", arrayBigEyeRoad[y, x]);
s += ".";
}
s += "\n";
}
Debug.Log(s);
Здесь по этой части
int[,] arrayBigEyeRoad = bsb.GetBigEyeRoad(104);
Я хочу отображать только значения 2D-массива 12, как это
int[,] arrayBigEyeRoad = bsb.GetBigEyeRoad(12);
Проблема в том, что меня не пускает. Потому что это даст мне сообщение об ошибке
Destination array was not long enough. Check destIndex and length, and the array's lower bounds
Теперь, как я могу сделать что-то вроде этого
Ограничьте отображение 2d на консоли
@Bijan копировать по одному? Как я могу это сделать?





Довольно просто:
int[,] a1 = new int[100,200];
int[,] a2 = new int[10,5];
for (int i = 0; i < 10; i++)
for (int j = 0; j < 5; j++)
a2[i,j] = a1[i,j];
или же
public class MyArray : int[,]
{
public override string ToString()
{
string result = "";
for (int i = 0; i < 10; i++)
for (int j = 0; j < 5; j++)
result += (a1[i,j].ToString() + ",");
return result;
}
}
Так что я не мог скопировать все свои элементы в a1 ??
Как вы можете видеть на изображении выше, возможно ли, что я могу просто скрыть это значение или нет, или это действительно то, как я должен это делать?
вы также можете переопределить ToString
Большое спасибо
и почему бы вам не копировать элементы по одному из одного массива в другой? вместо Array.Copy