获取类中一个变量的所有值

本文关键字:变量 一个 获取 | 更新日期: 2023-09-27 18:08:58

我有两个类一个是Destinations另一个是DestinationDetails

public class Destinations
{
    public Destinations() { }
    public string CarrierName { get; set; }
    public List<DestinationDetails> Details { get; set; }
}
public class DestinationDetails
{
    public DestinationDetails() { }
    public string Destination { get; set; }
    public string Type { get; set; }
}

我想从第一个类的对象列表中获得第二个类中的所有string "Destination"

我有List<Destinations>,我不想用for loop or foreach语句

获取类中一个变量的所有值

var dest = new Destinations();
//Initialize the details
var destNames = dest.Details.Select(d => d.Destination).ToList();

你在找这样的东西吗?

     var det = new Destinations();
     det.Details = new List<DestinationDetails>();
      det.Details.Add(new DestinationDetails() { Destination = "CA" });
      det.Details.Add(new DestinationDetails() { Destination = "NJ" });
      ...
      ...
     var details = new DestinationDetails();
     details.Destination = string.Join(",",det.Details.Select(x => x.Destination).ToArray() );

更新:-

提供的目的地列表"allDet",你可以得到的字符串列表如下:-

  alldet.Where(x => x.Details != null).SelectMany(x => x.Details.Select(y => y.Destination)).ToList() //With out ToList() it will give you IEnumerable<String>

List<Destinations> AirportDestinations ;//这个列表有Destinations对象有Details对象有Destination对象

所以通过使用SelectMany

List<string> cities.AddRange(AirportDestinations.Where(x => x.Details != null).SelectMany(d => d.Details.Select(s => s.Destination)));
现在列表中所有的对象都有Destination