繁体   English   中英

LINQ 选择嵌套列表上的表达式

[英]LINQ Select Expression on nested list

我将如何使用 Linq 遍历嵌套列表?

我有一个嵌套列表,如下所示:

var bookings = new List<List<Booking>>();

在 Booking 类中是预订详细信息,例如

我想遍历每个单独的列表并提取使用 Linq 嵌套的列表,但我正在努力做到这一点:(

我不确定我应该对 Linq 使用什么方法,我试过使用 SelectMany,但我认为我对它的理解不够好。

如果您尝试使用SelectMany使列表变平:

bookings.SelectMany((list) => list);

如果您尝试提取每个单独的列表:

bookings.ForEach((list) => {
    // Do something with the nested list
});

如果您尝试过滤嵌套列表,但要维护这些列表:

bookings.Select((list) => list.Where((item) => item.Price > 20));

等等。

SelectMany期望匝的每个项目在列表成一个函数IEnumerable<T>然后变平所得到IEnumerable<T>IEnumerable<T> s转换为IEnumerable<T> 通过将SelectMany与标识函数(list) => list您实际上SelectMany (list) => list每个项目做任何事情——它们已经是IEnumerable<T>'s ,因此不需要任何进一步的转换——然后SelectMany将随后平坦化所得IEnumerable<T>IEnumerable<T>秒。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM