Tôi muốn chuyển đổi từ IEnumerable<Contact>
thành List<Contact>
. Tôi có thể làm cái này như thế nào?Chuyển đổi từ IEnumerable sang Danh sách
Trả lời
Bạn có thể thực hiện điều này rất đơn giản bằng cách sử dụng LINQ.
Hãy chắc chắn này sử dụng là ở phía trên cùng của tập tin # C:
using System.Linq;
Sau đó, sử dụng phương pháp ToList
phần mở rộng.
Ví dụ:
IEnumerable<int> enumerable = Enumerable.Range(1, 300);
List<int> asList = enumerable.ToList();
Trong trường hợp bạn đang làm việc với một thường xuyên cũ System.Collections.IEnumerable
thay vì IEnumerable<T>
bạn có thể sử dụng enumerable.Cast<object>().ToList()
tôi sử dụng một phương pháp mở rộng cho việc này. Phương pháp mở rộng đầu tiên của tôi kiểm tra để xem nếu điều tra là null và nếu như vậy tạo ra một danh sách sản phẩm nào. Điều này cho phép bạn làm một foreach trên nó mà không rõ ràng phải kiểm tra null.
Dưới đây là một ví dụ rất giả tạo:
IEnumerable<string> stringEnumerable = null;
StringBuilder csv = new StringBuilder();
stringEnumerable.ToNonNullList().ForEach(str=> csv.Append(str).Append(","));
Dưới đây là phương pháp mở rộng:
public static List<T> ToNonNullList<T>(this IEnumerable<T> obj)
{
return obj == null ? new List<T>() : obj.ToList();
}
một cách khác
List<int> list=new List<int>();
IEnumerable<int> enumerable =Enumerable.Range(1, 300);
foreach (var item in enumerable)
{
list.add(item);
}
Bạn nên sử dụng hàm "AddRange (enumerable)" hoặc hàm tạo List (enumerable). – QtRoS
Nếu bạn đang sử dụng một thực hiện System.Collections.IEnumerable
bạn có thể làm như sau để chuyển đổi nó thành một số List
. Mục đích sau đây sử dụng phương pháp Enumerable.Cast để chuyển đổi IEnumberable
thành Generic List
.
//ArrayList Implements IEnumerable interface
ArrayList _provinces = new System.Collections.ArrayList();
_provinces.Add("Western");
_provinces.Add("Eastern");
List<string> provinces = _provinces.Cast<string>().ToList();
Nếu bạn đang sử dụng phiên bản Generic IEnumerable<T>
, Việc chuyển đổi là thẳng về phía trước. Kể từ khi cả hai đều là thuốc generic, bạn có thể làm như dưới đây,
IEnumerable<int> values = Enumerable.Range(1, 10);
List<int> valueList = values.ToList();
Nhưng nếu IEnumerable
là null, khi bạn cố gắng để chuyển đổi nó vào một List
, bạn sẽ nhận được ArgumentNullException
nói Giá trị không thể null.
IEnumerable<int> values2 = null;
List<int> valueList2 = values2.ToList();
Do đó như đã đề cập trong other answer, hãy nhớ làm một tấm séc null
trước khi chuyển đổi nó vào một List
.
- 1. Chuyển đổi IEnumerable sang DataTable
- 2. Haskell - chuyển đổi từ Danh sách sang Data.Vector
- 3. Chuyển đổi danh sách sang từ điển bằng Python
- 4. Chuyển đổi từ danh sách sang số trong R
- 5. Chuyển đổi danh sách java.awt.geom.Point2D sang java.awt.geom.Area
- 6. Chuyển đổi IEnumerable trong Danh sách <T>
- 7. Chuyển từ điển sang danh sách <KeyValuePair>
- 8. Làm cách nào để chuyển đổi danh sách từ điển sang từ điển danh sách bằng Python?
- 9. Danh sách chuyển từ MVC ViewBag sang JavaScript
- 10. danh sách <int> chuyển đổi sang int []
- 11. chuyển đổi danh sách các danh sách
- 12. làm thế nào để chuyển đổi IEnumerable sang IObservable?
- 13. Chuyển đổi IEnumerable <T> sang IList
- 14. C# Không thể chuyển đổi từ IEnumerable <Base> thành IEnumerable <Derived>
- 15. Chuyển danh sách sang tệp jsp khác
- 16. Chuyển đổi danh sách các bộ dữ liệu sang từ điển
- 17. Làm cách nào để chuyển đổi từ điển Python sang danh sách các bộ dữ liệu?
- 18. Chuyển đổi Danh sách vào một danh sách Pivot
- 19. Không thể chuyển đổi Danh sách <KeyValuePair <...,...>> thành IEnumerable <object>?
- 20. Tự do chuyển đổi giữa Danh sách <T> và IEnumerable <T>
- 21. C# có IsNullOrEmpty cho Danh sách/IEnumerable?
- 22. chuyển đổi Danh sách chung .NET thành F # danh sách
- 23. chuyển đổi danh sách phẳng thành danh sách trong python
- 24. Danh sách chuyển đổi danh sách và đệ quy
- 25. chuyển đổi danh sách chuỗi thành danh sách số nguyên
- 26. Chuyển đổi mảng 2dump thành danh sách các danh sách
- 27. sao chép các mục danh sách từ danh sách này sang danh sách khác trong sharepoint
- 28. Chuyển đổi đầu ra của itertools.permutations từ danh sách các bộ thành danh sách các chuỗi
- 29. Chuyển mảng NumPy sang cấu trúc Danh sách Python?
- 30. Chuyển đổi IEnumerable <T> để string []
Điều quan trọng cần lưu ý là giải pháp của bạn hoạt động đối với phiên bản chung của 'IEnumerable'. Câu trả lời từ dưa chua của người dùng bên dưới xử lý phiên bản không chung chung. – mkmurray
Cảm ơn bạn đã "sử dụng System.Linq;" – mili
Cảm ơn bạn @mkmurray Tôi cần chú ý kỹ để tìm "dưa chua": D – fabriciorissetto