【问题标题】:Using Distinct() for filtering duplicated records in Linq使用 Distinct() 过滤 Linq 中的重复记录
【发布时间】:2019-04-04 21:22:29
【问题描述】:

我有一些重复的电子邮件记录。我还需要返回IQueryable类型。

我尝试了Distinct(),但我没有为我工作,因为我想返回IQueryable 类型。我收到一个错误,无法将类型系统集合泛型列表隐式转换为 System.Linq.IQueryable(您是否缺少演员表):

public IQueryable<acadVParent> GetEmailReceiptsId()
{
   return AsQueryable().Where(o => (o.email != null && o.email != ""));
}

所以这在集合中重复了电子邮件。我想排除具有重复电子邮件记录的对象记录。

【问题讨论】:

  • 您使用的AsQueryable 静态定义在哪里?
  • 你在AsQueryable之前有什么遗漏吗?
  • 嗨,Shwan,欢迎来到 SO。 AsQueryable 是您创建的某种方法吗?如果有,源头在哪里?否则,我认为您提供的示例代码不会编译。如果您尝试从 Linq 引用 IQueryable 扩展方法,那么应该在 IEnumerable&lt;T&gt; 类型的某个变量上调用它。
  • @shwan 请给我留言,这很重要(maythamfahmi@itbackyard.com)

标签: c# linq asqueryable


【解决方案1】:

只需通过电子邮件分组并获取每个组中的第一个(删除重复项),最后将其转换为可查询(这里我假设 ListArray,...名称是列表):

var result = list.GroupBy(x => x.email).Select(g => g.First()).AsQueryable();

【讨论】:

  • 非常感谢!它奏效了,它为我节省了太多解决解决方案的工作。
猜你喜欢
  • 2020-03-25
  • 2020-02-18
  • 2015-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多