Tôi đang cố gắng loại IList
loại thành List
loại nhưng tôi gặp lỗi mỗi lần.Truyền IList vào Danh sách
List<SubProduct> subProducts= Model.subproduct;
Model.subproduct
trả về IList<SubProduct>
.
Tôi đang cố gắng loại IList
loại thành List
loại nhưng tôi gặp lỗi mỗi lần.Truyền IList vào Danh sách
List<SubProduct> subProducts= Model.subproduct;
Model.subproduct
trả về IList<SubProduct>
.
Hãy thử
List<SubProduct> subProducts = new List<SubProduct>(Model.subproduct);
hoặc
List<SubProduct> subProducts = Model.subproducts as List<SubProduct>;
Đây là câu trả lời đúng, nhưng có lý do nào bạn muốn xử lý Danh sách thay vì IList không? Hầu hết thời gian sử dụng IList là một lựa chọn tốt hơn. –
IList
@KeithRousseau Tôi gặp sự cố khi cần sử dụng phương thức AddRange(). – ScubaSteve
List<SubProduct> subProducts= (List<SubProduct>)Model.subproduct;
Các failes chuyển đổi ngầm vì List<>
cụ IList
, không ngược lại. Vì vậy, bạn có thể nói IList<T> foo = new List<T>()
, nhưng không được List<T> foo = (some IList-returning method or property)
.
Chỉ một nitpick nhỏ: Danh sách
Rất tiếc, đúng vậy. – Webleeuw
Làm thế nào về điều này:
List<SubProduct> subProducts = Model.subproduct.ToList();
Điều đó chỉ có sẵn nếu bạn có quyền truy cập vào các phần mở rộng được định nghĩa trong phần 'System.Linq'. – Suncat2000
Đây phải là câu trả lời được chấp nhận. –
Trong trường hợp của tôi, tôi đã phải làm điều này, bởi vì không ai trong số những giải pháp đề nghị đã có sẵn:
List<SubProduct> subProducts = Model.subproduct.Cast<SubProduct>().ToList();
List<ProjectResources> list = new List<ProjectResources>();
IList<ProjectResources> obj = `Your Data Will Be Here`;
list = obj.ToList<ProjectResources>();
Điều này sẽ chuyển đổi đối tượng IList thành đối tượng danh sách.
Đây là tùy chọn tốt nhất để truyền/chuyển đổi danh sách đối tượng chung thành danh sách chuỗi.
object valueList;
List<string> list = ((IList)valueList).Cast<object>().Select(o => o.ToString()).ToList();
valueList phải là danh sách đối tượng –
tốt nhất là lập trình chống lại giao diện (IList) thay vì implimentation (List). Đó là một diễn viên không cần thiết để chuyển tới Danh sách. Bây giờ bạn phải thêm xử lý lỗi nếu trên cơ hội tắt một thực hiện IList, mà không phải là một danh sách, nhập đường dẫn mã đó. –
Vâng, nhưng 'IList' không có thứ mà' List' có, ví dụ 'AddRange' –