泛型对象实例化
繼承new()這個(gè)就可以進(jìn)行泛型實(shí)例化了。本來(lái)還想著直接傳一個(gè)進(jìn)去(ActivityPlayRequest request,T model, ActivityDbContext dbContext)
但是由于list引用的是地址指針,所以到最后List中的所有數(shù)據(jù)都是model最后一次的改變結(jié)果,比較坑。
所以查了一下泛型實(shí)例化的寫(xiě)法。當(dāng)然這種寫(xiě)法要求該對(duì)象存在無(wú)參的構(gòu)造函數(shù)才行。
是從這里參考的:Author ※森林小居※
http://www.cnblogs.com/Slxj/archive/2011/10/13/2210443.html
?
public List<T> GetAbstractUserDTO<T>(ActivityPlayRequest request,ActivityDbContext dbContext) where T : AbstractUserDTO,new(){//temp用來(lái)存放一個(gè)值,因?yàn)門(mén)泛型不能創(chuàng)建var merchant = dbContext.Find<Merchant>(request.MerchantID);if (merchant == null){return null;}var result = new List<T>();var weixinUserList = dbContext.WeixinUsers.ToList();var merchantWeixinUserList = dbContext.MerchantWeixinUsers.ToList();if (!string.IsNullOrEmpty(request.Keyword)){request.Keyword = request.Keyword.Trim();}//參加用戶(hù)的唯一表#region 存儲(chǔ)值var playList = dbContext.ActivityScenePlayRecords.Where(u => u.ActivitySceneID == request.ActivitySceneID).ToList();foreach (var item in playList){var temp = new T();temp.MerchantWeixinUserID = item.MerchantWeixinUserID;temp.WeixinUserID = item.WeixinUserID;#region 真實(shí)姓名聯(lián)系方式,不通過(guò)weixinuser表了,而是使用ActivityScenePlayRecord表進(jìn)行獲取temp.RealName = item.RealName;temp.TelPhone = item.Telphone;#endregionvar merchantWeixinUser = merchantWeixinUserList.Where(u => u.ID == item.MerchantWeixinUserID).FirstOrDefault();temp.NickName = merchantWeixinUser.NickName;temp.OpenId = merchantWeixinUser.OpenId;temp.ImageUrl = merchantWeixinUser.HeadImageUrl;#region 根據(jù)keyword判斷是否要添加進(jìn)入if (!string.IsNullOrEmpty(request.Keyword)){if (!string.IsNullOrEmpty(temp.RealName) && temp.RealName.Contains(request.Keyword)){result.Add(temp);}else if (!string.IsNullOrEmpty(temp.TelPhone) && temp.TelPhone.Contains(request.Keyword)){result.Add(temp);}else if (!string.IsNullOrEmpty(temp.NickName) && temp.NickName.Contains(request.Keyword)){result.Add(temp);}}else{result.Add(temp);}#endregion}#endregionreturn result;}?
轉(zhuǎn)載于:https://www.cnblogs.com/danlis/p/5359372.html
總結(jié)
- 上一篇: 使用xib封装一个view的步骤
- 下一篇: bzoj 3223: Tyvj 1729