0
   List<ContractType> filteredContractTypes = contractTypes.Where(x => x.ContractTypeName == "SUA").ToList();
   List<ContractSubType> contractSubTypes = filteredContractTypes.Select(c => c.ContractSubTypes).ToList();

the class contract type has a collection of subcontracttypes. how can I select just the subcontracttypes in linq?

I am getting the below error

> Cannot implicitly convert type 
> 'System.Collections.Generic.List<System.Collections.Generic.IEnumerable<Models.ContractSubType>>'
> to 'System.Collections.Generic.List<Models.ContractSubType>'
Bryan Dellinger
  • 4,724
  • 7
  • 33
  • 79
  • 3
    Try this contractTypes.Where(x => x.ContractTypeName == "SUA").SelectMany(c => c.ContractSubTypes).ToList() – Zinov Mar 25 '20 at 21:18

1 Answers1

1

You have (2D List) But contractSubTypes is a 1D List! You can use var and then you realize your mistake.

var contractSubTypes = filteredContractTypes.Select(c => c.ContractSubTypes).ToList();

or you can use SelectMany to Flatten List in LINQ!

AmirNorouzpour
  • 1,119
  • 1
  • 11
  • 26