public static void SetAnimeListAdapter(this LinearLayout listView, Context context, IList <AnimeItemViewModel> items, AnimeListDisplayModes mode, Action <AnimeItemViewModel> onClick = null) { switch (mode) { case AnimeListDisplayModes.IndefiniteList: listView.SetAdapter(items.GetAdapter((i, model, arg3) => { var view = new AnimeListItem(context, onClick); view.BindModel(model, false); return(view); }) ); break; case AnimeListDisplayModes.IndefiniteGrid: listView.SetAdapter(items.GetAdapter((i, model, arg3) => { var view = new AnimeGridItem(context, false, onClick); view.BindModel(model, false); return(view); }) ); break; default: throw new ArgumentOutOfRangeException(nameof(mode), mode, "SetAnimeListAdapter, do we want compact now?"); } }