我正在使用以下 linq 表达式来过滤列表:
var query =
follows
.Where(i => i.EUser.EProviders != null)
.Join(
ids,
i => i.EUser.EProviders.Where(j => j.ProviderType == EProvider.EnumProviderType.Facebook).First().Ip,
j => j.Ip,
(i, j) => i);
查询正在运行,但我在 First() 关键字中遇到问题,因为当我需要比较任何类型的 facebook 提供程序时,我只比较第一个元素。我试图让所有关注者至少有一个 facebook 类型的提供者,并且提供者 ID 包含在 ID 中。
我认为这是可行的,但我对查询不满意。在我看来不对。
follows
.Where(i => i.EUser.EProviders != null)
.Where(i => i.EUser.EProviders.Where(j => j.ProviderType == EProvider.EnumProviderType.Facebook && ids.Select(k => k.Ip).Contains(j.Ip)).Count() > 0);