我在 SO 上看到过这个问题,但它没有回答我的问题,因为我想删除同样重复的值的所有实例。
例如,如果我有一个包含这些值的列表:A、A、C、D、B、A、E、E
我想在新列表具有这些值的地方编写一些逻辑:C、D、B。
因为 A 和 E 被归类为重复项,所以我想完全删除它们。
考虑到这一点,这是我的代码:
// List having duplicate string elements.
List<string> list = new List<string>();
list.Add("A");
list.Add("A");
list.Add("C");
list.Add("D");
list.Add("B");
list.Add("A");
list.Add("E");
list.Add("E");
// Get distinct elements.
var distinct = (from item in list orderby item select item).Distinct();
foreach (string value in distinct)
{
Console.WriteLine("Distinct : {0}", value);
}
这是输出:
A, B, C, D, E
最佳答案
应该这样做(C 也应该在列表中,它只在代码示例中出现一次)
var distinct = list.GroupBy(x=>x).Where(y=>y.Count()==1).Select(z=>z.Key);
关于c# - 使用 LINQ 删除任何重复的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20906701/