linq谓词与一个对象

时间:2011-11-09 20:32:54

标签: linq

以前我用过:

feeds = feeds.Where(a => a.Address.ToUpper().Contains(ff.Street.ToUpper())).ToList();

现在,由于多个地址,地址已成为自定义对象列表。

public class Addresses
{
    public string StreetNumber { get; set; }
    public string StreetName { get; set; }
    etc
}

我试图查看对象内部以匹配从用户中选择任何地址的任何地址街道名称。现在我有:

feeds = feeds.Where(a => a.Addresses[0].StreetName.Contains(ff.StreetName)).ToList();

这只返回List中的第一个。如何根据列表中的所有街道名称进行检查?感谢。

1 个答案:

答案 0 :(得分:1)

再次选择Feed实例:

feeds = feeds.Where(
     aa => aa.Addresses.Any(a => a.StreetName.Contains(ff.StreetName)
).ToList();

或者选择匹配的地址:

addresses = feeds.SelectMany(aa => aa.Addresses)
         .Where(a => a.StreetName.Contains(ff.StreetName)).ToList();