Vấn đề là bạn đang gọi điện thoại List<T>.Reverse()
trả về void
.
Bạn có thể hoặc là làm:
List<string> names = "Tom,Scott,Bob".Split(',').ToList<string>();
names.Reverse();
hay:
IList<string> names = "Tom,Scott,Bob".Split(',').Reverse().ToList<string>();
Sau đó là tốn kém hơn, như đảo ngược một tùy IEnumerable<T>
bao gồm đệm tất cả các dữ liệu và sau đó năng suất tất cả - trong khi List<T>
có thể làm tất cả việc đảo chiều "tại chỗ". (Sự khác biệt ở đây là nó gọi phương thức Enumerable.Reverse<T>()
gia hạn, thay vì phương pháp List<T>.Reverse()
ví dụ.)
hiệu quả hơn nữa, bạn có thể sử dụng:
string[] namesArray = "Tom,Scott,Bob".Split(',');
List<string> namesList = new List<string>(namesArray.Length);
namesList.AddRange(namesArray);
namesList.Reverse();
Điều này tránh tạo ra bất kỳ bộ đệm của một kích thước không phù hợp - với chi phí lấy bốn phát biểu mà một người sẽ làm ... Như mọi khi, hãy cân nhắc khả năng đọc đối với hiệu suất trong trường hợp sử dụng thực tế.
Nguồn
2008-11-24 20:35:32
một con thú! – flesh
cũng được xây dựng, tôi thực sự đánh giá cao! –