string[][] Tablero = new string[3][3];
Tôi cần sắp xếp mảng 3x3 để lưu thông tin vào. Làm cách nào để khai báo điều này trong C #?
string[][] Tablero = new string[3][3];
Tôi cần sắp xếp mảng 3x3 để lưu thông tin vào. Làm cách nào để khai báo điều này trong C #?
Câu trả lời:
string[,] Tablero = new string[3,3];
Bạn cũng có thể khởi tạo nó trong cùng một dòng với cú pháp của trình khởi tạo mảng như sau:
string[,] Tablero = new string[3, 3] {{"a","b","c"},
{"d","e","f"},
{"g","h","i"} };
var tablero = new string[3,3];
nếu bạn đang sử dụng C # 3 trở lên
new string[,]
)
new string[,]
gì cả ...string [,] Tablero = {{"a","b","c"}, {"d","e","f"}, {"g","h","i"} }
Bạn có thể muốn điều này:
string[,] Tablero = new string[3,3];
Điều này sẽ tạo cho bạn một mảng giống như ma trận trong đó tất cả các hàng có cùng độ dài.
Mảng trong mẫu của bạn được gọi là mảng răng cưa , tức là một mảng các mảng trong đó các phần tử có thể có kích thước khác nhau. Một mảng răng cưa sẽ phải được tạo theo một cách khác:
string[][] Tablero = new string[3][];
for (int i = 0; i < Tablero.GetLength(0); i++)
{
Tablero[i] = new string[3];
}
Bạn cũng có thể sử dụng trình khởi tạo để điền dữ liệu vào các phần tử mảng:
string[,] Tablero = new string[,]
{
{"1.1","1.2", "1.3"},
{"2.1","2.2", "2.3"},
{"3.1", "3.2", "3.3"}
};
Và trong trường hợp một mảng răng cưa:
string[][] Tablero = new string[][]
{
new string[] {"1.1","1.2", "1.3"},
new string[] {"2.1","2.2", "2.3"},
new string[] {"3.1", "3.2", "3.3"}
};
Bạn vừa khai báo một mảng răng cưa. Loại mảng như vậy có thể có các kích thước khác nhau cho tất cả các chiều. Ví dụ:
string[][] jaggedStrings = {
new string[] {"x","y","z"},
new string[] {"x","y"},
new string[] {"x"}
};
Trong trường hợp của bạn, bạn cần mảng thông thường. Xem câu trả lời ở trên. Thông tin thêm về mảng răng cưa
Tôi cho rằng bạn đang tìm kiếm điều này:
string[,] Tablero = new string[3,3];
Cú pháp cho một mảng răng cưa là:
string[][] Tablero = new string[3][];
for (int ix = 0; ix < 3; ++ix) {
Tablero[ix] = new string[3];
}
Có 2 loại mảng nhiều chiều trong C #, được gọi là Multidimensional
và Jagged
.
Đối với đa chiều, bạn có thể:
string [,] multi = new string [3, 3];
Đối với mảng răng cưa, bạn phải viết thêm một đoạn mã:
string[][] jagged = new string[3][];
for (int i = 0; i < jagged.Length; i++)
{
jagged[i] = new string[3];
}
Nói tóm lại mảng răng cưa vừa nhanh hơn vừa có cú pháp trực quan. Để biết thêm thông tin, hãy xem: câu hỏi về Stackoverflow này
string[][] jagged = { new[] { "a", "b", "c" }, new[] { "d", "e", "f" }, new[] { "g", "h", "i" } };
hoặc var jagged = new[] { new[] { "a", "b", "c" }, new[] { "d", "e", "f" }, new[] { "g", "h", "i" } };
thử đi :
string[,] myArray = new string[3,3];
xem trên http://msdn.microsoft.com/en-us/library/2yd9wwz4.aspx
string[,] Tablero = new string[3,3];
string[][]
là không một mảng hai chiều, nó là một mảng của mảng (một mảng lởm chởm ). Đó là một cái gì đó khác nhau.
Để khai báo một mảng hai chiều, hãy sử dụng cú pháp sau:
string[,] tablero = new string[3, 3];
Nếu bạn thực sự muốn một mảng răng cưa , bạn cần khởi tạo nó như sau:
string[][] tablero = new string[][] { new string[3],
new string[3],
new string[3] };
Một mảng 3x3 (đa chiều) cũng có thể được khởi tạo (bạn đã khai báo) như thế này:
string[,] Tablero = {
{ "a", "b", "c" },
{ "d", "e", "f" },
{ "g", "h", "i"}
};
Khi bạn đang cố gắng tạo một mảng nhiều chiều, tất cả những gì bạn cần làm là thêm dấu phẩy vào khai báo như sau:
string[,] tablero = new string[3,3].
bạn cũng có thể viết mã bên dưới.
Array lbl_array = Array.CreateInstance(typeof(string), i, j);
trong đó 'i' là số hàng và 'j' là số cột. bằng cách sử dụng phương thức 'typeof (..)', bạn có thể chọn kiểu mảng của mình tức là int, string, double
Có rất nhiều ví dụ về cách làm việc với mảng trong C # ở đây .
Tôi hi vọng cái này giúp được.
Cảm ơn, Damian