IE中的IEqualityComparer采用匿名类型的Union方法

时间:2013-07-08 06:20:03

标签: c# linq methods union iequalitycomparer

我写了一个这样的查询:

  context.PageGroupLangsInSettings
            .Where(x => x.PageGroupLang.Language.CaltureId == langCaltureId && x.PageGroupLang.PageGroup.Id == pageGroupId)
            .Select(x => new { x.Key, x.Value, Order = 0 })
        .Union(
        context.PageGroupSavedSettingDetails
            .Where(x => x.PageGroupSavedSettings.PageGroupLangs
                .Where(y => y.Language.CaltureId == langCaltureId && y.PageGroup.Id == pageGroupId).Any())
            .Select(x => new { x.Key, x.Value, Order = 1 })
        ).ToList()

现在我想使用IEqualityCompare将'key'字段相互比较,但我不知道该怎么做。 谢谢:))

1 个答案:

答案 0 :(得分:0)

只能在声明它的方法中访问匿名类型的属性。但是,如果您传出该方法,访问成员可能需要使用反射或其他一些解决方法。相反,您可以尝试创建一个类来保存投影或使用Dictionary。