Выполнение приведения в запросе LINQ

В зависимости от того, что csharp вы пытаетесь сделать, один dot-net из них может помочь:

List parentLineList1 =
  (from t in content.ChildControls.OfType()
   from p in t.ChildControls.OfType()
   from pl in p.ChildControls.OfType()
   select pl).ToList();

List parentLineList2 =
  (from TabSection t in content.ChildControls
   from Paragraph p in t.ChildControls
   from Line pl in p.ChildControls
   select pl).ToList();

Обратите dot-net внимание, что используется .net-3.5 OfType(), который .net-3.5 вы использовали. Это отфильтрует .net-framework-3.5 результаты и вернет только c#.net элементы указанного типа. Второй csharp запрос неявно использует .net-framework Cast(), который .net-3.5 приводит результаты к указанному dotnet типу. Если какой-либо элемент framework3.5 не может быть разыгран, генерируется .net-3.5 исключение. Как упоминает dot-net Турбулентный Интеллект, вам framework3.5 следует как можно дольше c-sharp воздерживаться от вызова framework3.5 ToList() или вообще избегать c#.net его.

c#

.net

linq

.net-3.5

2022-06-28T15:14:29+00:00