C# 3.0: Need to return duplicates from a List<>

前端 未结 8 1904
无人及你
无人及你 2020-12-23 19:05

I have a List<> of objects in C# and I need a way to return those objects that are considered duplicates within the list. I do not need the Distinct resultset, I need a

8条回答
  •  情歌与酒
    2020-12-23 19:58

    Create a new Dictionary foundColors and a List carsToDelete

    Then you iterate through your original list of cars like so:

    foreach(Car c in listOfCars)
    {
        if (foundColors.containsKey(c.Color))
        {
            carsToDelete.Add(c);
        }
        else
        {
            foundColors.Add(c.Color, c);
        }
    }
    

    Then you can delete every car that's in foundColors.

    You could get a minor performance boost by putting your "delete record" logic in the if statement instead of creating a new list, but the way you worded the question suggested that you needed to collect them in a List.

提交回复
热议问题