Giới thiệu
Kể từ csharp 8.0 trở đi (Unity phiên bản 2020.2 trở lên). Bạn có thể sử dụng cú pháp như thế này đối với mảng
1
2
3
4
5
6
|
int[] arr = new int[] {0, 1, 2, 3, 4, 5};
...
arr[^1]
arr[1..2]
|
Bạn có thể tham khảo từ trang chủ của microsoft
Bài viết này sẽ giúp bạn tóm tắt lại cú pháp để thuận tiện cho việc sử dụng
Chỉ định một chỉ mục (index)
Phần tử đầu tiên là 0 (arr[0]) 1, 2,… là các phần tử tiếp theo.
điều này cũng đúng nếu duyệt mảng theo chiều ngược lại vì vậy hãy cẩn thận.
1
2
3
4
5
6
7
8
|
int[] arr = new int[] {
// index from start index from end
0, // 0 ^5
1, // 1 ^4
2, // 2 ^3
3, // 3 ^2
4 // 4 ^1
};
|
arr[i]
Tham chiếu đến phần tử thứ i kể từ đầu mảng
1
2
3
4
|
int[] arr = new int[] {0, 1, 2, 3, 4};
// x sẽ có giá trị là 0 sau khi chạy câu lệnh dưới đây.
int x = arr[0];
|
arr[^i]
Tham chiếu đến phần tử i - 1 (hay phần tử thứ i từ cuối)
1
2
3
4
|
int[] arr = new int[] {0, 1, 2, 3, 4};
// x sẽ có giá trị là 4 sau khi chạy câu lệnh dưới đây.
int x = arr[^i];
|
Chỉ định một phạm vi (range)
arr[i..j]
Kết quả trả về từ phần tử thứ i đến phần tử thứ j - 1
1
2
3
4
|
int[] arr = new int[] {0, 1, 2, 3, 4};
// x sẽ chứa giá trị 1 và 2 sau khi chạy câu lệnh dưới đây.
int x = arr[1..3];
|
Lưu ý rằng nó không bao gồm phần tử thứ j
arr[i..^j]
Từ phần tử thứ i đến phần tử thứ j từ cuối
1
2
3
4
|
int[] arr = new int[] {0, 1, 2, 3, 4};
// x sẽ chứa giá trị 1, 2, 3 sau khi chạy câu lệnh dưới đây.
int x = arr[1..^1];
|
arr[i..]
Từ phần tử thứ i đến phần tử cuối cùng
1
2
3
4
|
int[] arr = new int[] {0, 1, 2, 3, 4};
// x sẽ chứa giá trị 1, 2, 3, 4 sau khi chạy câu lệnh dưới đây.
int x = arr[1..];
|
arr[..j]
Từ phần tử đầu tiên cho đến phần tử thứ j - 1
1
2
3
4
|
int[] arr = new int[] {0, 1, 2, 3, 4};
// x sẽ chứa giá trị 0 sau khi chạy câu lệnh dưới đây.
int x = arr[..1];
|
arr[..^j]
Từ phần tử đầu tiên cho đến phần tử thứ j từ cuối
1
2
3
4
|
int[] arr = new int[] {0, 1, 2, 3, 4};
// x sẽ chứa giá trị 0, 1, 2, 3 sau khi chạy câu lệnh dưới đây.
int x = arr[..^1];
|
arr[^i..]
Từ phần tử thứ i từ cuối đến phần tử cuối cùng
1
2
3
4
|
int[] arr = new int[] {0, 1, 2, 3, 4};
// x sẽ chứa giá trị 4 sau khi chạy câu lệnh dưới đây.
int x = arr[^1..];
|
arr[..]
trả về toàn bộ mảng (từ phần tử đầu tiên đến phần tử cuối cùng)
1
2
3
4
|
int[] arr = new int[] {0, 1, 2, 3, 4};
// x sẽ chứa giá trị 0, 1, 2, 3, 4 sau khi chạy câu lệnh dưới đây.
int x = arr[..];
|