Tôi đang cố gắng sử dụng LINQ để tạo Dictionary<string, List<CustomObject>>
từ a List<CustomObject>
. Tôi có thể làm điều này hoạt động bằng cách sử dụng "var", nhưng tôi không muốn sử dụng các loại ẩn danh. Đây là những gì tôi có
var x = (from CustomObject o in ListOfCustomObjects
group o by o.PropertyName into t
select t.ToList());
Tôi cũng đã thử sử dụng Cast<>()
từ thư viện LINQ khi tôi có x
, nhưng tôi gặp các vấn đề biên dịch do ảnh hưởng của nó là một dàn diễn viên không hợp lệ.
var
không sử dụng loại "ẩn danh", đó là sử dụng loại "ẩn". Các kiểu ẩn danh là các lớp mới được tạo bởi trình biên dịch để xử lý việc xây dựng new { thing = "stuff" };
. Các kiểu ẩn là các lớp hiện có, var
chỉ là một cách thuận tiện để tham chiếu chúng khi biến được gán ngay lập tức, loại biến có thể được suy ra từ loại đối tượng được gán cho nó. Bạn thậm chí có thể ngầm định nhập một biến tham chiếu một loại ẩn danh, tức là:var a = new { thing = "stuff" };