Có thể thực hiện một phép đúc trong một truy vấn LINQ (vì lợi ích của trình biên dịch) không?Làm một diễn viên trong một truy vấn LINQ
Các mã sau đây không phải là khủng khiếp, nhưng nó sẽ được tốt đẹp để làm cho nó thành một truy vấn:
Content content = dataStore.RootControl as Controls.Content;
List<TabSection> tabList = (from t in content.ChildControls
select t).OfType<TabSection>().ToList();
List<Paragraph> paragraphList = (from t in tabList
from p in t.ChildControls
select p).OfType<Paragraph>().ToList();
List<Line> parentLineList = (from p in paragraphList
from pl in p.ChildControls
select pl).OfType<Line>().ToList();
Mã này tiếp tục trên với một vài thắc mắc hơn, nhưng thực chất là tôi phải tạo ra một Liệt kê ra mỗi truy vấn để trình biên dịch biết rằng tất cả các đối tượng trong content.ChildControls
thuộc loại TabSection
và tất cả các đối tượng trong t.ChildControls
thuộc loại Paragraph
... và cứ tiếp tục như vậy.
Có cách nào trong truy vấn LINQ để thông báo cho trình biên dịch rằng t
trong from t in content.ChildControls
là một TabSection
?
Đó là những gì OfType() là dành cho. –
Lucas