You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从List<FlightDetails>中移除指定属性,仅保留指定字段返回

解决方案

方法一:创建专用DTO类(推荐)

这是最规范的实现方式,既能保留原有业务类的完整性,又能明确控制返回的数据结构:

  1. 先定义一个仅包含所需字段的DTO(数据传输对象)类:
public class FlightSummary
{
    public string PilotName { get; set; }
    public string Area { get; set; }
}
  1. 修改接口方法的返回类型,并将查询到的FlightDetails对象映射为FlightSummary:
public async Task<List<FlightSummary>> GetFlightAsync(string flightId)
{
    // 修正原代码笔误:request应改为response
    var response = await _rest.Get<WorldFlights>(url + $"?FlightId={flightId}");
    return response.AllFlights
        .Where(x => x.FlightId.Contains(flightId))
        .Select(x => new FlightSummary
        {
            PilotName = x.PilotName,
            Area = x.Area
        })
        .ToList();
}

方法二:使用匿名类型(适合临时场景)

如果不想新建类,可以直接返回匿名类型,但这种方式没有强类型提示,仅适合快速临时需求:

public async Task<List<dynamic>> GetFlightAsync(string flightId)
{
    var response = await _rest.Get<WorldFlights>(url + $"?FlightId={flightId}");
    return response.AllFlights
        .Where(x => x.FlightId.Contains(flightId))
        .Select(x => new 
        {
            x.PilotName,
            x.Area
        })
        .Cast<dynamic>()
        .ToList();
}

注意点

原代码存在一处笔误:定义了var request但后续使用的是response.AllFlights,需修正为var response才能正常运行。

内容的提问来源于stack exchange,提问作者alex dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 15:48:02