asp.net 不适用于C#/ Visual Studio 2012

ndasle7k  于 2023-01-06  发布在  .NET
关注(0)|答案(4)|浏览(120)

我使用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;

我做错什么了吗?

7bsow1i6

7bsow1i61#

编辑日期:2023年1月3日

.NET 6以上版本有DistinctBy,假设你使用的是LTS版本的.NET,我建议你使用这种方法,而不是下面的方法。

旧答案

你不需要安装任何Nuget软件包来处理DistinctBy请求,只需添加下面的代码行就可以将它指向许多预先安装的引用中的一个。

using Microsoft.Ajax.Utilities;

从这里开始,在任何返回的集合末尾添加.DistinctBy(d => d.Name),类似于下面的示例。

var foo = _repository.GetList().DistinctBy(d => d.Name).ToList();
iqxoj9l9

iqxoj9l92#

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

hc2pp10m

hc2pp10m3#

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

pb3skfrl

pb3skfrl4#

试试这个:

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

相关问题