2010-06-02 43 views
2

我有這樣的映射定義AutoMapper排序列表

Mapper.CreateMap<Telephone, TelephoneDTO>() 
.ForMember(dto => dto.Extension, opt => opt.MapFrom(src => src.Extension)) 
.ForMember(dto => dto.Number, opt => opt.MapFrom(src => src.Number)) 
.ForMember(dto => dto.Type, opt => opt.MapFrom(src => src.TelephoneType.Id)); 

當我這樣做

IList<TelephoneDTO> dtos = Mapper.Map<IList<Telephone>, IList<TelephoneDTO>>(tels); 

我想TelephoneDTO名單由類型進行排序。

我該怎麼做?

謝謝

回答

6

AutoMapper用於映射,而不是排序。一旦映射正在做的,你可以對列表進行排序:

IList<TelephoneDTO> dtos = Mapper 
    .Map<IList<Telephone>, IList<TelephoneDTO>>(tels) 
    .OrderBy(x => x.Type) 
    .ToList(); 
+4

很可惜有與深對象圖打交道時,雖然映射期間排序,尤其是沒辦法。 – UpTheCreek 2011-05-08 10:51:49

+0

尤其是當從集合到列表時,考慮地圖的排序順序部分是相當合理的。 – starwed 2018-01-18 20:40:15

0

IList<TelephoneDTO> dtos = Mapper 
    .Map<IList<Telephone>, IList<TelephoneDTO>>(tels.OrderBy(x => x.Type)) 
+0

也取決於哪些集合需要排序 – 2010-06-07 21:56:30