C#-Linq-避免重復(fù)相同代碼片段的技術(shù)
I正在為C#webapi編寫一段代碼,允許客戶端傳遞列名和排序方向參數(shù)。盡管大概有30處房產(chǎn),因此,下面的代碼(盡管有效)過了一段時(shí)間就變得難看了。我有什么辦法
解答動(dòng)態(tài)
I把這個(gè)寫在記事本上,給你一個(gè)可能的路線取:
//創(chuàng)建列名和列篩選器的查找字典表達(dá)式.varcolumnExpressions=new Dictionarylt;T,boolgt;q.ColumnA},{nameof(MyModel.ColumnB格式).ToLower(),q=gt;q.ColumnC};//獲取所選列的kvp(鍵值對(duì))。var kvp=columnExpressions.FirstOrDefault屬性(x=>;x.鍵==列.ToLower());如果(kvp!=默認(rèn)值){如果(參數(shù).isorderbysc){返回查詢結(jié)果.OrderBy(kvp.值);}否則{返回queryResult.OrderByDescending(kvp.值);}}否則{//找不到句柄列kvp。}- End
免責(zé)聲明:
本頁內(nèi)容僅代表作者本人意見,若因此產(chǎn)生任何糾紛由作者本人負(fù)責(zé),概與琴島網(wǎng)公司無關(guān)。本頁內(nèi)容僅供參考,請(qǐng)您根據(jù)自身實(shí)際情況謹(jǐn)慎操作。尤其涉及您或第三方利益等事項(xiàng),請(qǐng)咨詢專業(yè)人士處理。