zoukankan      html  css  js  c++  java
  • 关于var和dynamic的使用之一

    不知道从.NET几点几开始有个这2个关键字,但是的确可以减少一些编程代码量,性能也还未知,仅记录对比2种不同的编码,得到相同的效果:

    一、使用一般的编码:

    先来3个Model类:

     1  public class NMenus
     2     {
     3         public List<MTitle> titles { get; set; }
     4 
     5         public NMenus()
     6         {
     7             titles = new List<MTitle>();
     8         }
     9     }
    10 
    11     public class MTitle
    12     {
    13         public int tid { get; set; }
    14         public string tname { get; set; }
    15         public string ticon { get; set; }
    16 
    17         public List<MTItem> items { get; set; }
    18 
    19         public MTitle()
    20         {
    21             items = new List<MTItem>();
    22         }
    23     }
    24 
    25     public class MTItem
    26     {
    27         public int iid { get; set; }
    28         public string iname { get; set; }
    29         public string iicon { get; set; }
    30         public string iurl { get; set; }
    31     }
    View Code

    再来看筛选并转JSON的代码:

     1                 NMenus menus = new NMenus();
     2                 foreach (SysNavMenu title in titles)
     3                 {
     4                     var items = from m in menusList
     5                                 where m.PMId == title.MId
     6                                 select new MTItem { iid = m.MId, iname = m.MText, iicon = m.Icon, iurl = m.MUrl };
     7                     var t = new MTitle { tid = title.MId, tname = title.MText, ticon = title.Icon, items = items.ToList<MTItem>() };
     8                     menus.titles.Add(t);
     9                 }
    10                 jsonMenus = JsonConvert.SerializeObject(menus);
    View Code

    二、使用var和dynamic的编码:

     1                 var menus = new { titles = new List<dynamic>() };
     2                 foreach (SysNavMenu title in titles)
     3                 {
     4                     var items = from m in menusList
     5                                 where m.PMId == title.MId
     6                                 select new { iid = m.MId, iname = m.MText, iicon = m.Icon, iurl = m.MUrl };
     7                     var t = new { tid = title.MId, tname = title.MText, ticon = title.Icon, items = items.ToList<dynamic>() };
     8                     menus.titles.Add(t);
     9                 }
    10                 jsonMenus = JsonConvert.SerializeObject(menus);
    View Code

    小结:一和二得到的最终jsonMenus字符串是相同的,唯一不同的就只有......

  • 相关阅读:
    .Net转Java自学之路—SpringMVC框架篇九(拦截器)
    .Net转Java自学之路—SpringMVC框架篇八(RESTful支持)
    移动端高清适配、布局开发解决方案
    Webpack+Gulp+React+ES6开发
    gulp使用gulp-file-include将header/footer引入页面
    git在window与linux的换行符问题
    文件(图片)上传组件
    ie8、9跨域上传文件(图片)
    移动端rem布局背景图片使用以及sprite雪碧图
    iOS/Android 浏览器(h5)及微信中唤起本地APP
  • 原文地址:https://www.cnblogs.com/yforg/p/4161188.html
Copyright © 2011-2022 走看看