How to get duplicate items from a list using LINQ?

c#, duplicates, linq

Solution

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

Note that this will return all duplicates, so if you only want to know which items are duplicated in the source list, you could apply `Distinct` to the resulting sequence or use the solution given by Mark Byers.

Problem

I'm having a `List<string>` like: ``` List<String> list = new List<String>{"6","1","2","4","6","5","1"}; ``` I need to get the duplicate items in the list into a new list. Now I'm using a nested `for` loop to do this. The resulting `list` will contain `{"6","1"}`. Is there any idea to do this using LINQ or lambda expressions?

Original source

Related problems