C# LINQ:使用GroupBy删除重复项

C# LINQ:使用GroupBy删除重复项,c#,linq,C#,Linq,我的代码类似于 非常感谢。.First()从组序列中返回第一个组 Select(group=>group.First())获取组序列并返回表示每个组中第一项的新序列 这两件事都是完全正确的,而且也极为不同。您只需打印结果即可看到这一点,或者只需查看结果的类型即可(如果不使用var,这在代码中更为明显)。.First()从一系列组中返回第一组 Select(group=>group.First())获取组序列并返回表示每个组中第一项的新序列 这两件事都是完全正确的,而且也极为不同。您只需打印结果即

我的代码类似于

非常感谢。

.First()
从组序列中返回第一个组

Select(group=>group.First())
获取组序列并返回表示每个组中第一项的新序列

这两件事都是完全正确的,而且也极为不同。您只需打印结果即可看到这一点,或者只需查看结果的类型即可(如果不使用
var
,这在代码中更为明显)。

.First()
从一系列组中返回第一组

Select(group=>group.First())
获取组序列并返回表示每个组中第一项的新序列

这两件事都是完全正确的,而且也极为不同。您只需打印结果即可看到这一点,或者只需查看结果的类型即可(如果不使用
var
,这在代码中更为明显)。

.First()
从一系列组中返回第一组

Select(group=>group.First())
获取组序列并返回表示每个组中第一项的新序列

这两件事都是完全正确的,而且也极为不同。您只需打印结果即可看到这一点,或者只需查看结果的类型即可(如果不使用
var
,这在代码中更为明显)。

.First()
从一系列组中返回第一组

Select(group=>group.First())
获取组序列并返回表示每个组中第一项的新序列

这两件事都是完全正确的,而且也极为不同。您可以通过简单地打印结果看到这一点,或者仅查看结果的类型(如果不使用
var
,这在代码中会更明显)

List<MyObject> myList = new List<MyObject>(){new MyObject { Number1 = 1, Number2 = 2, Number3 = 3 },
                                             new MyObject { Number1 = 1, Number2 = 2, Number3 = 3 }};

var listWithoutDuplicated = myList
    .GroupBy(x => new { x.Number1, x.Number2, x.Number3 })
    .Select(x => x.First());

int counter = 0;
foreach (var item in listWithoutDuplicated)
{
    counter ++;
} 
// This code would not remove duplicates.
var listWithoutDuplicated = myList
    .GroupBy(x => new { x.Number1, x.Number2, x.Number3 })
    .First();