Điều đó tùy thuộc vào ý nghĩa của từ "mảng".
Nếu bạn muốn nói khái niệm tính toán chung của một đối tượng truy cập ngẫu nhiên, độ dài cố định, các đối tượng có thể lập chỉ mục nguyên, thì có, một chuỗi có thể được xem chính xác như vậy. (Khái niệm tính toán chung thường bao gồm tiếp giáp trong bộ nhớ, nhưng chặn một vài trường hợp, chẳng hạn như sử dụng con trỏ trong mã không an toàn, điều đó không có ý nghĩa lắm về C#).
Nếu bạn có nghĩa là ngôn ngữ C# thực hiện khái niệm này, char[]
sau đó không thực sự, hai là những thứ khác nhau.
Trong thực tế, System.String
thực sự được triển khai dưới dạng một mảng char
s, nhưng không nhất thiết phải như vậy.
Ngôn ngữ nit-picks sang một bên, các bit thực hiện:
Nếu bạn muốn làm các thao tác tương tự trên một chuỗi như bạn làm trên một char[]
thì đây thường sẽ làm việc (đặc biệt là mặc dù, chuỗi được read-only) và thường là cách hiệu quả nhất để làm như vậy, miễn là khái niệm khá đơn giản. Cụ thể, sử dụng foreach
và sử dụng chỉ mục di chuyển giữa các số 0
và str.Length - 1
hoạt động tốt. Tương tự, rất nhiều hoạt động mà một người có thể thực hiện trên char[]
có thể được thực hiện trên string
, chẳng hạn như CopyTo()
và truyền tới IEnumerable<char>
.
Nếu bạn muốn thực sự có một mảng ký tự thì bạn cần gọi ToCharArray()
.
Nguồn
2010-09-24 14:36:36
+1 cho câu trả lời rõ ràng, được ghi nhận. – NotMe