c# - 如何使用 LINQ 从列表中获取重复项?

标签 c# linq duplicates

<分区>

我有一个 List<string>喜欢:

List<String> list = new List<String>{"6","1","2","4","6","5","1"};

我需要将列表中的重复项放入新列表中。现在我正在使用嵌套的 for循环执行此操作。

结果list将包含 {"6","1"} .

有没有办法使用 LINQ 来做到这一点?或 lambda expressions

最佳答案

var duplicates = lst.GroupBy(s => s)
    .SelectMany(grp => grp.Skip(1));

请注意,这将返回所有重复项,因此如果您只想知道源列表中哪些项目重复,您可以将 Distinct 应用于结果序列或使用 the solution given by Mark Byers .

关于c# - 如何使用 LINQ 从列表中获取重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3811464/

相关文章:

c# - 在 linq 查询中创建某种循环

linux - 保留一对中的一个成员

java - 两个不同接口(interface)实现中的重复代码

linux - 在 linux 终端中使用 awk 命令忽略重复?

C# 任务不像我期望的那样

c# - 有什么方法可以在复杂类型上使用 OData $orderby 吗?

c# - 将 Timer 类从 java 转换为 c# : scheduling tasks

c# - Entity Framework 错误关键字不支持 : provider\r\nconnection string

Sql Select Statement Issue in order by

c# - 无法从 IMongoQueryable mongodb C# 驱动程序 linq 语句上的 GroupBy 中的组获取​​组项目