我在 C# 中使用 LINQ
此代码导致dates
类型Lookup<TKey, TElement>
var dates = timetableEvents.GroupBy(x => x.DateTimeStart);
我只需要一个 DateTimeStart 列表(DateTime 类型)。
我应该如何更改我的 LINQ 表达式?
我在 C# 中使用 LINQ
此代码导致dates
类型Lookup<TKey, TElement>
var dates = timetableEvents.GroupBy(x => x.DateTimeStart);
我只需要一个 DateTimeStart 列表(DateTime 类型)。
我应该如何更改我的 LINQ 表达式?
只需使用Select
:
var dates = timetableEvents.Select(x => x.DateTimeStart);
或者,如果您只想要每个组中的一个:
var dates = timetableEvents.GroupBy(x => x.DateTimeStart).Select(x => x.Key);
如果您希望它运行得更快一点,那么您可以使用 Distinct (如 Rawling 的回答),但您可能不会注意到太大的区别,除非您有很多对象(尽管意图更清晰):
var dates = timetableEvents.Select(x => x.DateTimeStart).Distinct();
我发现这个网站在尝试学习 LINQ 时非常有用:101 LINQ Samples
如果您只需要开始日期/时间,
var dates = timetableEvents.Select(x => x.DateTimeStart).Distinct();
可能比
var dates = timetableEvents.GroupBy(x => x.DateTimeStart).Select(x => x.Key);
因为它知道它不必费心将事件分组在一起。