ÖØ¹¹ºó£º
private string CombineTechnicalBookNameOfAuthor(List<Book> books, string author) { var combinedName = books.Where(b => b.Category == BookCategory.Technical) .Where(b => b.Author == author) .Select(b => b.Name) .Aggregate((a, b) => a + "|" + b); return combinedName; }Ïà¶ÔÓÚÃüÁîʽ´úÂ룬ÉùÃ÷ÐÔ´úÂë¸ü¼Ó¾ßÓбí´ïÁ¦£¬Ò²¸ü¼ò½à¡£ÕâÒ²ÊǺ¯Êýʽ±à³ÌΪʲôԽÀ´Ô½»ðµÄÔÒòÖ®Ò»¡£
ËÄ.¹ØÓÚDRY
ƽʱ´ó¼ÒÖØ¹¹´úÂ룬һ¸öÖØÒªµÄ˼Ïë¾ÍÊÇDRY¡£ÎÒÒª·ÖÏíÒ»¸öDRYµÄ·´Àý£º
ÏîÄ¿Ôڼܹ¹¹ý³ÌÖлáÓи÷ÖÖ¸÷ÑùµÄMODEL²ã£¬ÀýÈ磺DomainModel£¬ViewModel£¬DTO¡£ºÜ¶àʱºòÕ⼸¸öModelÀïµÄ×ֶδ󲿷ÖÊÇÏàͬµÄ£¬ÓÚÊÇÓÐÈ˾ͻáÏëµ½DRYÔÔò£¬¸É´àÖ±½ÓÓÃÒ»ÖÖÀàÐÍ£¬Ê¡µÃÕ³Ìù¸´ÖÆ£¬À´»Ø×ª»»¡£
Õâ¸ö·´Àýʧ°ÜµÄ¸ù±¾ÔÒòÔÚÓÚ£ºÕ⼸ÖÖModelÖ°Ôð¸÷²»Ïàͬ£¬ËäÈ»´ó²¿·ÖÇé¿öÏÂÄÚÈÝ»áÓÐÖØ¸´£¬µ«ÊÇËûÃǵ£µ±×Ÿ÷ÖÖ²»Í¬µÄ½ÇÉ«¡£
¿¼ÂÇÕâÖÖ³¡¾°£º DomainModelÓÐÒ»¸ö×Ö¶ÎDateTime Birthday{get;set;}£¬ViewModelͬÑù¾ßÓÐDateTime Birthday{get;set;}¡£ÐèÇóÉý¼¶:ÒªÇó½çÃæ²»ÔÙÏÔʾÉúÈÕ£¬Ö»ÐèÒªÏÔʾÊÇ·ñ³ÉÄê¡£ÎÒÃÇÖ»ÐèÒªÔÚViewModelÖÐÌí¼ÓÒ»¸öBool IsAdult{get{return ....}}¼´¿É£¬DomainModelÍêÈ«²»Óñ仯¡£
Îå.ÀûÓÃÏȽøµÄÉú²ú¹¤¾ß
ÒÔvs²å¼þÖеÄReshaperΪÀý£¬±¾ÎÄÁоٵĴ󲿷ַ´Àý£¬Reshaprer¾ùÄܸøÓ費ͬ³Ì¶ÈµÄÌáʾ¡£¾¹ýÒ»¶Îʱ¼äµÄÁ·Ï°£¬µ±Reshaper¶ÔÄãµÄ´úÂë¸øÓè²»ÁËÈκÎÌáʾµÄʱºò£¬ÄãµÄ´úÂë»áÓÐÒ»¸öÃ÷ÏÔµÄÌá¸ß¡£
½ØÍ¼ËµÃ÷ReshaperµÄÌáʾ¹¦ÄÜ£º
¹â±êÒÆ¶¯ÔÚ²¨ÀËÏß´¦£¬È»ºóAlt+Enter,Resharper »á×Ô¶¯¶Ô´úÂë½øÐÐÓÅ»¯
Èç¹ûÄãÄܹ»±ÜÃâ±¾ÎÄ×ܽáµÄ·´Àý£¬ÄãµÄ´úÂë¾ÍÒѾ¾ß±¸ÁËÓÅÐã´úÂëÓ¦ÓеĻùÒò¡£µ±È»¸ßÖÊÁ¿µÄ´úÂ뻹ÐèÒªÁ¼ºÃµÄÉè¼ÆºÍ×ñÑÃæÏò¶ÔÏó±à³ÌµÄÔÔò¡£ Èç¹ûÏëÁ˽â¸ü¶àÏà¹ØÄÚÈÝ£¬ÇëÔĶÁ¡¶´úÂë´óÈ«¡·£¬¡¶´úÂëÕû½àÖ®µÀ¡·£¬¡¶Öع¹ ¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ¡·£¬¡¶Ãô½ÝÈí¼þ¿ª·¢ ÔÔò¡¢Ä£Ê½Óëʵ¼ù¡·
¡¡