温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

LINQ如何横向对比foreach

发布时间:2021-12-01 16:17:05 来源:亿速云 阅读:186 作者:小新 栏目:编程语言

这篇文章将为大家详细讲解有关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”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI