Tôi có một mảng char rất lớn mà tôi cần phải chuyển đổi thành chuỗi để sử dụng Regex trên đó.
Nhưng nó quá lớn đến nỗi tôi nhận được OutOfMemoryException
khi tôi chuyển cho nhà xây dựng chuỗi.Làm thế nào để tạo một chuỗi từ mảng char mà không cần sao chép nó?
Tôi biết chuỗi đó là bất biến và do đó nó không nên có thể chỉ định bộ sưu tập nhân vật cơ bản của nó nhưng tôi cần một cách để sử dụng biểu thức thông thường trên mà không cần sao chép toàn bộ điều.
Làm cách nào để nhận được mảng đó?
- Tôi lấy từ tệp bằng cách sử dụng
StreamReader
. Tôi biết vị trí bắt đầu và độ dài của nội dung cần đọc, các phương phápRead
vàReadBlock
cần tôi cung cấp bộ đệmchar[]
.
Vì vậy, đây là những điều tôi muốn biết:
- Có cách nào để xác định thu underlaying một chuỗi? (Liệu nó thậm chí giữ các ký tự của nó trong một mảng?)
- ... hoặc sử dụng Regex trực tiếp trên một mảng char?
- ... hoặc nhận trực tiếp một phần của tệp dưới dạng chuỗi?
Regex là gì? Nếu nó đủ đơn giản, bạn có thể thay thế nó bằng mã đi vào 'char []'. –
Làm thế nào lớn là 'char []'? –
@Matt: Thật không may là tôi không thể. Đó là một trình phân tích cú pháp khá dài và phức tạp. –