1

我正在使用 DistinctBy 返回一个不同的列表。它以某种方式不接受该方法。

List<LastLocation> tempLast = details.DistinctBy(x => x.deviceID).ToList();

几天前,当我使用 Visual Studio 2008 时,这是一个工作项目。我将项目迁移到 Framework 4.0,我目前正在使用 Visual Studio 2012,突然这开始引起问题。下面是正在使用的命名空间列表和引用的程序集。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using COMMON;
using MySql.Data.MySqlClient;
using System.Data;
using System.Configuration;
using System.Xml.Linq;

我做错什么了吗?

4

4 回答 4

7

好的,这有点晚了,但是您不需要安装任何NUGET软件包来处理DistinctBy请求。只需添加以下代码行即可将其指向许多预安装的参考之一。

using Microsoft.Ajax.Utilities;

添加后,您可以简单地将其放在.DistinctBy(d => d.Name)任何返回的集合的末尾,类似于下面的示例。

var someVariableName = _repositoryName.GetListOfData().DistinctBy(d => d.Name).ToList();
于 2014-09-24T19:27:01.017 回答
3

DistincyBy是通过MoreLinq提供的,而不是框架的一部分。检查您是否安装并引用了 MoreLinq。

于 2013-08-20T11:00:19.697 回答
3

DistinctBy 不是 Linq 的一部分。也许您缺少MoreLinq的 NuGet 包,或者您没有包含自己的扩展方法。

于 2013-08-20T11:01:15.433 回答
-2

尝试这个:

details.Select(x => x.deviceID).Distinct().ToList();
于 2013-08-20T11:02:10.967 回答