からいくつかのオブジェクトを除外する:Automapper - 私は、次のマップのルールを持っているマップされたコレクション
CreateMap<ViewModels.ApplicationDriverAccidentFormVM, ApplicationDriverAccidentDomain>();
その後、私は両方の種類ごとに適切なコレクションである事故性質を持っている、ApplicationDriverDomainにViewModels.ApplicationDriverFormVMをマップします。
public class ApplicationDriverDomain
{
public List<ApplicationDriverAccidentDomain> Accidents { get; set; }
}
public class ApplicationDriverFormVM
{
public List<ApplicationDriverAccidentFormVM> Accidents { get; set; }
}
そして、私は(マップではない)満足していないすべてのレコード、いくつかの条件 私は、次のコードを書いてみる除外したい:
GetNotNullFromCollectionがある CreateMap<ViewModels.ApplicationDriverFormVM, ApplicationDriverDomain>()
.ForMember(dest => dest.Accidents, opt => opt.MapFrom(src => GetNotNullFromCollection(src.Accidents)))
:
List<object> GetNotNullFromCollection(object input)
{
List<object> output = new List<object>();
foreach (var item in (List<object>)input)
{
if (!Utils.IsAllNull(item))
output.Add(item);
}
return output;
}
を
でも、それは私に言われます:
'System.Collections.Generic.List
1[Web.ViewModels.ApplicationDriverAccidentFormVM]' to type 'System.Collections.Generic.List
1 [System.Object]'のオブジェクトをキャストすることができません。
なぜ、どのようにするのですか?
一覧はオブジェクトではありませんか? –
リストは、オブジェクトではなく総称タイプのリストです。ジェネリックスの主題についてもっと読む –
Yarimi