我使用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;
我做错了吗?
答案 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();