Tôi đang sử dụng C# và khá khó chịu khi tôi không thể gửi mảng bắt đầu từ một điểm nhất định như trong C++.Nhận mảng bắt đầu bằng offset
giả mã này:
int[] array = new int[32];
foobar (array + 4); //send array starting from the 4th place.
đây là một cú pháp lạ cho C# bởi vì chúng tôi không có bất kỳ gợi ý sử dụng được, nhưng chắc chắn có một cách để làm điều đó? Có .Skip(), nhưng tôi nghĩ nó tạo ra một mảng mới, đó là thứ tôi không thích.
Tùy chọn của tôi là gì?
FYI, bỏ qua không tạo ra mảng mới. Nó tạo ra một hàm số _array mới đã bỏ qua các mục n đầu tiên. –
Những gì tôi đã thực hiện khi chuyển mã C++ thành C# sử dụng thành ngữ của con trỏ nội bộ này đến một mảng là thực hiện một cấu trúc ArrayPtr bất biến mà thực hiện các toán tử do người dùng định nghĩa [] - +. Lớp ArrayPtr xử lý các chi tiết của việc tìm ra các offset nằm bên trong mảng thực. –
Làm thế nào bạn xác định rằng việc tạo một mảng mới là quá nhiều chi phí? – nos