【问题标题】:i need to search for passager inside of nested list using linq in c# [closed]我需要在 C# 中使用 linq 在嵌套列表中搜索乘客 [关闭]
【发布时间】:2018-01-09 11:35:34
【问题描述】:
preresponse.Where(x =>
    x.hotels.Any(h => h.Travellers.Any(t => t.FullName.ToLower().Contains(request.SearchText)
                                         || t.FirstName.ToLower().Contains(request.SearchText)
                                         || t.LastName.ToLower().Contains(request.SearchText)
                                         || t.EmailAddress.ToLower().Contains(request.SearchText))
    || x.cars.Any(c => c.Travellers.Any(t => t.FullName.ToLower().Contains(request.SearchText)
                                          || t.FirstName.ToLower().Contains(request.SearchText)
                                          || t.LastName.ToLower().Contains(request.SearchText)
                                          || t.EmailAddress.ToLower().Contains(request.SearchText))
    || x.tours.Any(s => s.Travellers.Any(t => t.FullName.ToLower().Contains(request.SearchText)
                                           || t.FirstName.ToLower().Contains(request.SearchText)
                                           || t.LastName.ToLower().Contains(request.SearchText)
                                           || t.EmailAddress.ToLower().Contains(request.SearchText))
    || x.flights.Any(f => f.Travellers.Any(t => t.FullName.ToLower().Contains(request.SearchText)
                                             || t.FirstName.ToLower().Contains(request.SearchText)
                                             || t.LastName.ToLower().Contains(request.SearchText)
                                             || t.EmailAddress.ToLower().Contains(request.SearchText))
    ))))).ToList();

我正在使用上述查询,它适用于酒店、汽车和航班,但不适用于旅游旅行者 谁能在这里找到问题所在?

【问题讨论】:

    标签: c# asp.net database linq


    【解决方案1】:

    我认为括号有问题。我已经格式化了代码,也许你的意思是这样的:

    preresponse.Where(x => 
        x.hotels.Any(h => 
            h.Travellers.Any(t => 
                t.FullName.ToLower().Contains(request.SearchText) || 
                t.FirstName.ToLower().Contains(request.SearchText) || 
                t.LastName.ToLower().Contains(request.SearchText) || 
                t.EmailAddress.ToLower().Contains(request.SearchText)))
            || 
        x.cars.Any(c => 
            c.Travellers.Any(t => 
                t.FullName.ToLower().Contains(request.SearchText) || 
                t.FirstName.ToLower().Contains(request.SearchText) || 
                t.LastName.ToLower().Contains(request.SearchText) || 
                t.EmailAddress.ToLower().Contains(request.SearchText)))
            || 
        x.tours.Any(s => 
            s.Travellers.Any(t => 
                t.FullName.ToLower().Contains(request.SearchText) || 
                t.FirstName.ToLower().Contains(request.SearchText) || 
                t.LastName.ToLower().Contains(request.SearchText) || 
                t.EmailAddress.ToLower().Contains(request.SearchText)))
            || 
        x.flights.Any(f => 
            f.Travellers.Any(t => 
                t.FullName.ToLower().Contains(request.SearchText) || 
                t.FirstName.ToLower().Contains(request.SearchText) || 
                t.LastName.ToLower().Contains(request.SearchText) || 
                t.EmailAddress.ToLower().Contains(request.SearchText)))
        ).ToList();
    

    【讨论】:

    • 我在 preresponse 对象中预订酒店、汽车航班和旅游,然后对他们的姓名、电子邮件应用过滤器,我在酒店汽车和航空箱中得到结果,但是当我在旅游中搜索旅行者时,我为空
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 2019-06-08
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多