Я работаю с услугой gRP C, и у меня есть список отелей, в которых может случиться так, что будет повторен один и тот же отель, но с разными номерами или предложениями, я хотел бы сгруппировать эти отели с одинаковым идентификатором и добавьте разные комнаты внутри него. Я пытаюсь достичь этого с помощью Linq, но получаю эту ошибку:
Не удается неявно преобразовать тип 'System.Collections.Generi c .IEnumerable' в 'Google.Protobuf.Collections.RepeatedField'
Это блок кода.
private Grpc.CheckRateResponse BuildGrpcResponseResult(List<Hotels> hotelsList)
{
var listResult = hotelsList.GroupBy(h => h.Id)
.Select(g => new Grpc.Hotels
{
Id = g.Key,
Name = g.Where(c => c.Id == g.Key).FirstOrDefault().Name,
CategoryCode = g.Where(c => c.Id == g.Key).FirstOrDefault().CategoryCode
Rooms = g.SelectMany(h => h.Rooms).GroupBy(r => r.RoomId).Select(x => new Grpc.Room
{
RoomId = x.Key,
RoomName = x.Where(l => l.RoomId == x.Key).FirstOrDefault().RoomName,
Rates = x.SelectMany(r => r.Rates).Select(c => new Grpc.Rate
{
RateKey = c.RateKey,
RateType = c.RateType,
BoardCode = c.BoardCode
})
})
});
Grpc.CheckRateResponse result = new Grpc.CheckRateResponse();
result.Hotels.Add(listResult);
return result;
}