Tôi biết trong python bạn có thể làm một cái gì đó như myList[1:20]
nhưng có bất cứ điều gì tương tự trong C#?Làm cách nào để cắt ngắn danh sách trong C#?
Trả lời
var itemsOneThroughTwenty = myList.Take(20);
var itemsFiveThroughTwenty = myList.Skip(5).Take(15);
Bạn có thể sử dụng List<T>.GetRange()
:
var subList = myList.GetRange(0, 20);
Từ MSDN:
Tạo một bản sao cạn của một loạt các yếu tố trong nguồn
List<T>
.
public List<T> GetRange(int index, int count)
sans LINQ quicky ...
while (myList.Count>countIWant)
myList.RemoveAt(myList.Count-1);
public static IEnumerable<TSource> MaxOf<TSource>(this IEnumerable<TSource> source, int maxItems)
{
var enumerator = source.GetEnumerator();
for (int count = 0; count <= maxItems && enumerator.MoveNext(); count++)
{
yield return enumerator.Current;
}
}
Vì nó đứng bạn có thể xem xét thêm một số văn bản giải thích, bởi vì người dùng ít kinh nghiệm có thể đấu tranh để hiểu câu trả lời. – Raad
này có thể hữu ích cho hiệu quả, nếu bạn thực sự muốn cắt ngắn danh sách, không tạo một bản sao. Trong khi ví dụ python tạo một bản sao, câu hỏi ban đầu thực sự là về việc cắt xén danh sách.
Với một danh sách <> đối tượng "danh sách" và bạn muốn 1 thông qua các yếu tố 20
list.RemoveRange(20, list.Count-20);
này làm nó tại chỗ. Đây vẫn là O (n) vì các tham chiếu đến từng đối tượng phải được loại bỏ, nhưng phải nhanh hơn một chút so với bất kỳ phương thức nào khác.
- 1. Làm cách nào để cắt bớt danh sách?
- 2. Làm cách nào để cắt ngắn chuỗi trong khi chuyển đổi thành byte trong C#?
- 3. Làm thế nào để cắt một danh sách bằng Python
- 4. Làm thế nào để cắt ngắn chuỗi UTF8 trong PHP?
- 5. C++ gamedev: cắt ngắn phao thành int
- 6. Có cách nào khác để cắt ngắn chuỗi không?
- 7. Truy cập vba: danh sách đa số additem cắt ngắn trên dấu phẩy
- 8. Cách tìm chuỗi ngắn nhất trong danh sách bằng Python
- 9. cắt hai danh sách từ trong python
- 10. Cắt ngắn giá trị thập phân trong C++
- 11. Python: Làm thế nào để bạn chèn vào một danh sách bằng cách cắt?
- 12. PHP cách cắt ngắn một mảng
- 13. Làm cách nào để chuyển danh sách dưới dạng danh sách các đối số trong vợt?
- 14. C# lấy danh sách từ một trường trong danh sách
- 15. Cách tốt nhất/ngắn nhất để tham gia danh sách trong CMake
- 16. Làm thế nào để làm danh sách hiểu (cách nhỏ gọn để chuyển đổi một danh sách vào danh sách khác) trong C#?
- 17. cách làm phẳng danh sách các danh sách trong R
- 18. Trong Python, làm cách nào để xóa mục danh sách thứ N từ danh sách danh sách (xóa cột)?
- 19. Làm cách nào để viết danh sách nổi danh sách để ghi trong Python
- 20. Big-O của danh sách cắt
- 21. làm thế nào để cắt văn bản trong css như gmail không để email danh sách chủ đề
- 22. Cant lấy mô tả ngắn trong danh sách loại xem
- 23. Làm cách nào để tạo một danh sách các cặp đối tượng từ hai danh sách trong C#?
- 24. Tốc độ cắt ngắn Postgresql
- 25. Làm cách nào để chuyển đối số sang cắt ngắn mảng.một?
- 26. Cắt ngắn/làm tròn toàn bộ số trong JavaScript?
- 27. Làm cách nào để kiểm soát nhãn cắt ngắn chuỗi dài bằng dấu chấm lửng?
- 28. Làm cách nào để cắt ngắn NSString thành độ dài được đặt?
- 29. Cắt ngắn chuỗi bằng Bytes
- 30. Làm thế nào để cắt ngắn một chuỗi với độ dài cụ thể trong perl?
Lưu ý rằng các phần mở rộng LINQ này thực sự tạo một IEnumerable <> dừng sau N mục, thay vì tạo một mảng/danh sách mới. (Đây là loại ẩn bằng cách sử dụng 'var' cho loại biến. Nếu mã sau cắt ngắn lặp qua danh sách mới nhiều lần, bạn sẽ thực sự được đánh giá lại cây biểu thức * mỗi lần *. , bạn có thể muốn tack một '.ToList()' vào cuối để buộc các mục được liệt kê và một danh sách mới được tạo ra – JaredReisinger