• 关于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字符串是相同的,唯一不同的就只有......

  • 相关阅读:
    python实现图像仿射变换 以图像缩放并平移为例讲解
    图像仿射变换之图像平移 python实现
    图解图像仿射变换
    2-Maven
    1-IDEA
    公开密钥算法-RSA算法
    公开密钥算法-背包算法
    对称密钥算法
    Java内存分配与参数传递
    Oracle怎么用(常用工具)
  • 原文地址:https://www.cnblogs.com/yforg/p/4161188.html
Copyright © 2020-2023  润新知