作者e23882 (呆呆要不要買降有)
看板C_Sharp
標題[問題] 設計共用方法
時間Fri Nov 8 11:50:50 2019
這是最近遇到的一個案例
主要就是有一個方法是在針對某個List去做一些處理
可能類似的像下面這樣
public Data
{
string Name{get;set;}
int ID{get;set;}
//資料主鍵
}
List<Data> list = new List<Data>(new Data(){....}....);
public
List<Data> FilterList(
List<Data> InputList)
{
return InputList.where(x=>x
.ID > 0).ToList();
}
如果未來希望可以讓上面這個方法共用的話,紅色背景的地方就不能寫死
可能方法參數會有資料來源的List跟他在方法裡面的主鍵是什麼
因為我一點概念都沒有
不知道有沒有這方面的關鍵字還是資源可以參考的
--
1F:推 psp2007 :我朋友說 ADC不要第一個死 07/28 16:53
2F:→ lianngg :我朋友說 ADC不要臉皮太薄 07/28 16:55
3F:→ JOGIBA :我朋友說 ADC贏要衝輸要縮 07/28 16:56
4F:推 jjerry8888 :樓上抄電影賭神台詞XDDD 07/28 16:57
5F:推 yang790609 :我朋友說 ADC打你打得到的 07/28 16:58
6F:推 maynightdado:我朋友說我很帥 07/28 16:59
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.75.101.50 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_Sharp/M.1573185052.A.27E.html
※ 編輯: e23882 (211.75.101.50 臺灣), 11/08/2019 11:56:25
7F:→ testPtt: 你可能想要:MyMethod<T>(T t) where T : IMyInterface 11/08 13:14
9F:→ ssccg: 你有沒有注意到你用的系統API就可以讓你自訂用法,List<T> 11/09 12:34
10F:→ ssccg: 和Where(Func<T,bool>),照著這個用法就可以了 11/09 12:40
11F:→ ssccg: List<T> FilterList<T>(List<T> list, Func<T,bool> func) 11/09 12:43
12F:→ ssccg: { return list.where(func).ToList(); } 11/09 12:44
13F:→ ssccg: 當然也可以做點變化例如 11/09 12:44
14F:→ ssccg: List<T> FilterList<T>(List<T> list, Func<T,int> func) 11/09 12:44
15F:→ ssccg: { return list.Where(i => func.Invoke(i) > 0).ToList();} 11/09 12:45
16F:→ ssccg: 把跟特定類別有關的操作也變成參數,就可以傳任意類別 11/09 12:46
17F:→ ssccg: 如果要限制的比較嚴格,你要傳的每個類別都是你自訂的,那 11/09 12:48
18F:→ ssccg: 就用1、2樓的方法吧 11/09 12:48
學習了, 感謝各位大大回覆
※ 編輯: e23882 (211.75.101.50 臺灣), 11/11/2019 17:45:37