2017-11-17 3 views
0

Wie kann ich von List<ComplexObject> eine List<string> erhalten, vorausgesetzt, ComplexObject hat zwei Eigenschaften: Prop1 des Typs Zeichenfolge und Prop2 des Typs Int. Und ich bin interessiert, eine List<string> (Liste von prop1) zu extrahieren.Liste der Zeichenfolgen aus der Liste des komplexen Typs extrahieren

Mit einem Beispiel, vielleicht ist es klarer.

Stellen Sie sich vor Sie haben List<Country> wo Land ist das komplexe Objekt mit ID und Name. Und ich bin daran interessiert, aus countryList nur eine nameList mit allen Namen zu extrahieren.

Ich weiß, ich kann so etwas tun:

  List<string> nameList = new List<string>(); 

      foreach (var country in countryList) 
      { 
       nameList.Add(country.Name); 
      } 

... aber ich frage mich, ob es ein einfacherer und schnellerer Weg Namensliste von Länderauswahl zu extrahieren ist. Vielleicht mit Lambda oder so.

Und kann auch diese Liste von Zeichenfolgen leicht in eine DataTable konvertiert werden?

Vielen Dank.

+0

hängt .. was Sie mit dem Datatable tun? Es könnte einen einfacheren Weg ohne DataTable geben. – Slai

Antwort

5

Das ist ein häufiger Anwendungsfall für eine LINQ-Auswahl, die die Ergebnisauflistung in eine Liste konvertiert. Es ist leichter getan als gesagt:

Umwandlung zu einem DataTable kommt nicht so bequem verpackt. Here's an answer about doing das.

1

Mit LINQ:

var names = countryList.Select(c => c.Name).ToList(); 
Verwandte Themen