LINQ如何横向对比foreach

这篇文章将为大家详细讲解有关LINQ如何横向对比foreach,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

成都创新互联公司服务项目包括石首网站建设、石首网站制作、石首网页制作以及石首网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,石首网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到石首省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

1 引言

首先来看看,这个List转换双方的本来面目,以一个常见的User类为例而言,User类代表了Model层的实体类,其定义为:

    // Release : code10, 2009/05/06
   // Author  : Anytao, http://www.51cto.com    public class User
    {        public int ID { get; set; }        public string FirstName { get; set; }
    public string SecondName { get; set; }        public int Age { get; set; }    }

而Account类,则代码了Business Object层的业务类,其定义为:

    // Release : code10, 2009/05/06
    // Author  : Anytao, http://www.51cto.com
public class Account    {        public int ID { get; set; }
public string Name { get; set; }        public int Age { get; set; }    }

那么一件重要的事情,就是如何完成二者之间的转换,尤其是,类似于List到List这样的转换,是常常发生在业务处理的实际操作中。关于二者的区别,属于设计方面的论题,不是本文关注的对象。

2 本来的实现---想起来就是foreach

好了,典型的List转换,我们固有思维中想到的就是循环了,所以我想都没想就实现了下面的处理过程:

        // Release : code10, 2009/05/06
         // Author  : Anytao, http://www.51cto.com
        public List GetAccounts(Listusers)
 {            List accounts = new List();
             foreach (User item in users)
           {                Account account = new Account();
              account.ID = item.ID;
             account.Name = item.FirstName + item.SecondName;
                account.Age = item.Age;
                accounts.Add(account);            }
             return accounts;        }

固有的思维并没有错,程序和处理诚如以往一样值得回味。但是,忘却和前进同样重要,所以我忘了用最简单的办法来更优雅的处理这一操作。

3 改进的方式---LINQ真的来了

LIQN来了,就不要吝啬自己的武器,对于相同的代码需求,优雅和简洁永远是值得追求的感觉,所以值得看似经典的代码,其实还可以更好:

// Release : code10, 2009/05/06
// Author  : Anytao, http://www.51cto.com
 public List GetAccounts(Listusers)
   {  var result = from item in users
             select new Account
          {      ID = item.ID,
Name = item.FirstName + item.SecondName,
    Age = item.Age   };
   return result.ToList();        }

改善就这么一点点,以LINQ方式实现的“智能”转换,看起来更美,不是吗。

关于“LINQ如何横向对比foreach”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


文章名称:LINQ如何横向对比foreach
文章转载:http://scyanting.com/article/jeisds.html