区别不适用于C#/ Visual Studio 2012

时间:2013-08-20 10:56:36

标签: c# asp.net linq generics

我使用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 个答案:

答案 0 :(得分:7)

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

using Microsoft.Ajax.Utilities;

添加完成后,您只需将.DistinctBy(d => d.Name)放在任何返回的集合的末尾,类似于以下示例。

var someVariableName = _repositoryName.GetListOfData().DistinctBy(d => d.Name).ToList();

答案 1 :(得分:3)

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

答案 2 :(得分:3)

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

答案 3 :(得分:-2)

试试这个:

details.Select(x => x.deviceID).Distinct().ToList();