код, который я должен сделать это через LINQ - PullRequest
0 голосов
/ 23 марта 2011

Error after implementing the solution

У меня есть код, который я должен сделать через LINQ

var airlineNameList = new List<string>();

foreach (DTTrip trip in contract_.Trips)
{
    foreach (DTFlight flight in trip.ListOfFlights)
    {
        airlineNameList.Add(flight.AirLineName);
    }
}

Как можно это сделать через LINQ. Примечание: contract_ является объектом класса.

Пожалуйста, помогите ..

Ответы [ 3 ]

4 голосов
/ 23 марта 2011
var airlineNameList = contract_.Trips
                               .SelectMany(t => t.ListOfFlights)
                               .Select(f => f.AirLineName);
2 голосов
/ 23 марта 2011
var resultList = contract_.Trips
      .Cast<DTTrip>()
      .SelectMany(trip => trip.ListOfFlights.Cast<DTFlight>())
      .Select(flight => flight.AirLineName)
      .ToList();

Тебе тоже не нужно Distinct?

1 голос
/ 23 марта 2011
var airlineNameList = (
    from trip in contract_.Trips
    from flight in trip.ListOfFlights
    select flight.AirLineName)
    .ToList();

Cachach foreach делает неявное приведение к вам (а это фуфло), так что, возможно, вам нужно это:

var airlineNameList = (
    from trip in contract_.Trips.Cast<DTTrip>()
    from flight in trip.ListOfFlights.Cast<DTFlight>()
    select flight.AirLineName)
    .ToList();
...