【问题标题】:Create unique list by position c# [closed]按位置c#创建唯一列表[关闭]
【发布时间】:2020-09-21 11:25:28
【问题描述】:

从列表中按顺序获取所有不同项目的最有效方法是什么?

我有一个 List>,其中可能有多个重复项,并且只想要列表中按顺序排列的唯一值。

例如,

name : Orange
actualname : Orango
name : Lime
fullname : Lime Lime
actualname : Limo

我的预期输出是,

name
fullname
actualname

试过了,

arrayKeys.Select(pair => pair.Key).Distinct().ToArray() 但与我预期输出的顺序不匹配

【问题讨论】:

  • 您尝试过的努力和代码在哪里?
  • @PavelAnikhouski 添加了我的代码
  • @PavelAnikhouski dotnetfiddle.net/N3GUui

标签: c# .net list linq


【解决方案1】:

你可以试试

var distinctKeys = yourList.Select(x => x.Key).Distinct().ToList();

首先,您选择每个KeyValuePair 的键,然后使用Distinct() 创建一个不同的IEnumerable,然后将其转换为一个列表。

在线演示:https://dotnetfiddle.net/N3GUui

【讨论】:

  • 不起作用。您可以看到输出与我的输出不匹配。
  • 您希望按照什么标准对预期输出进行排序?
  • 顺序应该按照数据位置。那是a c a b c。一旦第二个 a 出现,如果除了 c 之外还有任何东西,它应该被添加到第二个位置,形成新的列表 abc
猜你喜欢
  • 2014-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-25
  • 1970-01-01
  • 2015-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多