Linq-通过字符串列表过滤另一个列表内的列表属性

时间:2019-05-07 13:08:19

标签: c# linq

我有一个名为Ocorrencia的对象列表,它有一个名为Tecnicos的属性,它是对象OcorrenciaTecnico的列表。该对象具有称为Nome的属性。我想通过最后一个属性(String)和Ocorrencia的列表来过滤Nome的列表。

对我来说太复杂了。我该如何实现?

我已经尝试过了:

String

但是我遇到一个错误:

  

无法隐式转换类型   “ ocorrencias = ocorrencias.Select( x => x.Tecnicos.Where( y => ocorrenciaFiltro.TecnicosFiltro.Any( z => z.Equals(y.Nome)))); ”   至   “ System.Collections.Generic.IEnumerable<System.Collections.Generic.IEnumerable<MasterCoin.Models.OcorrenciaTecnico>>”。   存在显式转换(您是否缺少演员表?)

2 个答案:

答案 0 :(得分:2)

我想您将Select(一个投影)和Where(一个 filter )混淆了。 试试这个:

var filteredOcorrencias = ocorrencias.Where(
    x => x.Tecnicos.Any(
        y => ocorrenciaFiltro.TecnicosFiltro.Contains(y.Nome))).ToList();

答案 1 :(得分:1)

那呢?

var nomes = new List<string> {"Taian", "Taian2"};
var allTaian = Ocorrencia.Where(o => o.Tecnicos.Any(t => nomes.Contains(t.Nome)));