Linq GroupBy和Lookup <TKey,TElement> .Item

Gib*_*boK 3 c# linq entity-framework

我在C#中使用LINQ

此代码导致dates类型Lookup<TKey, TElement>

   var dates = timetableEvents.GroupBy(x => x.DateTimeStart);
Run Code Online (Sandbox Code Playgroud)

我只需要一个DateTimeStart列表(DateTime类型).

我该如何更改LINQ表达式?

Mar*_*num 7

只需使用Select:

var dates = timetableEvents.Select(x => x.DateTimeStart);
Run Code Online (Sandbox Code Playgroud)

或者,如果您只想要每个组中的一个:

var dates = timetableEvents.GroupBy(x => x.DateTimeStart).Select(x => x.Key);
Run Code Online (Sandbox Code Playgroud)

如果你希望它运行得更快,那么你可以使用Distinct(如Rawling的答案),但你可能不会注意到很多不同,除非你有很多对象(但是,意图更清晰):

var dates = timetableEvents.Select(x => x.DateTimeStart).Distinct();
Run Code Online (Sandbox Code Playgroud)

在尝试学习LINQ:101 LINQ示例时,我发现此站点非常有用