我有以下对象:
public class Result
{
public List<Recomendation> Recomendations { get; set; }
}
public class Recomendation
{
public List<Segment> Segments { get; set; }
}
public class Segment
{
public Leg OutBound { get; set; }
public Leg InBound { get; set; }
}
public class Leg
{
public TimeSpan TotalTime { get; set; }
public string Carrier { get; set; }
public int RefNumber { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我有一个清单叫做 recommendations
我需要这样做:
recommendations按出站对象或入站对象中的中出现的字符串 arr进行 过滤Carrier。我尝试这样做:单独搜索入站:
var filteredList = recommendations.Where( r=>r.Segments.Any(x => x.InBound.Carrier.Contains(arr))).ToList();
Run Code Online (Sandbox Code Playgroud)
或单独搜索出站:
var filteredList = recommendations.Where( r=>r.Segments.Any(x => x.OutBound.Carrier.Contains(arr))).ToList();
Run Code Online (Sandbox Code Playgroud)
我要搜索的字符串出现arr在BOTH入站和出站。
问题有时是InBound可以为null或OutBound可以为null。我希望我的linQ在这两种情况下都能工作。
您需要确保当Inbound或Outbound为null时代码不会中断。
var filteredList = recommendations.Where( r=>r.Segments.Any(x => ( x.OutBound != null && x.OutBound.Carrier.Contains(arr)) || (x.Inbound != null && x.InBound.Carrier.Contains(arr))).ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
439 次 |
| 最近记录: |