【发布时间】:2020-11-24 08:07:33
【问题描述】:
在 linq Select 内部,我有一个 SelectMany,它正在引发错误
C# SelectMany 错误“无法隐式转换类型 '
System.Collections.Generic.List<char>' 到 'System.Collections.Generic.List<List>' "
List<Hotel> hotelList = reservations
.GroupBy(i => i.hotelID)
.Select(c => new Hotel()
{
HotelID = c.First().HotelID,
HotelName = c.First().HotelName,
HotelAddress1 = c.First().HotelAddress1,
HotelAddress2 = c.First().HotelAddress2,
HotelAddress3 = c.First().HotelAddress3,
HotelCity = c.First().CCCity,
HotelPostalCode = c.First().CCZip,
ReservationNumbers = c.SelectMany( i => i.ReservationNumber).Distinct().ToList()
}).ToList();
SelectMany 自动将其转换为IEnumerable<char>,然后ToList 将其转换为List<Char>
i.ReservationNumber 是 String 类型,ReservationNumbers 是 List<string> 类型,c 是 IGrouping<Reservation, int> 类型
有什么方法可以强制转换为List<string> 或如何使SelectMany 返回IEnumerable<string>
【问题讨论】:
-
如果
ReservationNumber是一个字符串,那么SelectMany( i => i.ReservationNumber)会选择该字符串中的单个字符并将它们合并到所有预留中的单个流中。这是你想要的,还是你的意思是.Select( i => i.ReservationNumber)? -
为什么是
SelectMany?我相信你只想要.Select
标签: c# list linq types ienumerable