看板 C_Sharp 關於我們 聯絡資訊
這是最近遇到的一個案例 主要就是有一個方法是在針對某個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跟他在方法裡面的主鍵是什麼 因為我一點概念都沒有 不知道有沒有這方面的關鍵字還是資源可以參考的 --
psp2007 :我朋友說 ADC不要第一個死 07/28 16:53
lianngg :我朋友說 ADC不要臉皮太薄 07/28 16:55
JOGIBA :我朋友說 ADC贏要衝輸要縮 07/28 16:56
jjerry8888 :樓上抄電影賭神台詞XDDD 07/28 16:57
yang790609 :我朋友說 ADC打你打得到的 07/28 16:58
maynightdado:我朋友說我很帥 07/28 16:59
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.75.101.50 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1573185052.A.27E.html ※ 編輯: e23882 (211.75.101.50 臺灣), 11/08/2019 11:56:25
testPtt: 你可能想要:MyMethod<T>(T t) where T : IMyInterface 11/08 13:14
samchung: 同樓上,用泛型方法 https://dotnetfiddle.net/orKsWv 11/08 23:14
ssccg: 你有沒有注意到你用的系統API就可以讓你自訂用法,List<T> 11/09 12:34
ssccg: 和Where(Func<T,bool>),照著這個用法就可以了 11/09 12:40
ssccg: List<T> FilterList<T>(List<T> list, Func<T,bool> func) 11/09 12:43
ssccg: { return list.where(func).ToList(); } 11/09 12:44
ssccg: 當然也可以做點變化例如 11/09 12:44
ssccg: List<T> FilterList<T>(List<T> list, Func<T,int> func) 11/09 12:44
ssccg: { return list.Where(i => func.Invoke(i) > 0).ToList();} 11/09 12:45
ssccg: 把跟特定類別有關的操作也變成參數,就可以傳任意類別 11/09 12:46
ssccg: 如果要限制的比較嚴格,你要傳的每個類別都是你自訂的,那 11/09 12:48
ssccg: 就用1、2樓的方法吧 11/09 12:48
學習了, 感謝各位大大回覆 ※ 編輯: e23882 (211.75.101.50 臺灣), 11/11/2019 17:45:37