Linq--使用Linq在不同类型之间转换

需求:

     有两个类型,分别为MyUser和YourUser,要在这两个类型之间进行转换

 

ContractedBlock.gif ExpandedBlockStart.gif MyUser.cs
namespace XMLSpy.Linq{
    
public class MyUser{
        
/// <summary>
        
/// 设置或获取用户ID
        
/// </summary>
        public int Id { getset; }

        
/// <summary>
        
/// 设置或获取用户名称
        
/// </summary>
        public string Name { setget; }
    }
}

 

ContractedBlock.gif ExpandedBlockStart.gif YourUser
namespace XMLSpy.Linq{
    
public class YourUser{
        
/// <summary>
        
/// 设置或获取用户ID
        
/// </summary>
        public int Id { getset; }

        
/// <summary>
        
/// 设置或获取用户名称
        
/// </summary>
        public string Name { setget; }
    }
}

 

 解决方法:

 

ContractedBlock.gif ExpandedBlockStart.gif TypeCast .cs
using System.Collections.Generic;
using System.Linq;

namespace XMLSpy.Linq {
    
/// <summary>
    
/// 在不同类型之间转换
    
/// Author : xmlspy.spring@gmail.com
    
/// </summary>
    public class TypeCast {
        
/// <summary>
        
/// 把YourUser[]转换为MyUser[]
        
/// </summary>
        
/// <param name="yourUsers"></param>
        
/// <returns></returns>
        public MyUser[] ToMyUsers(YourUser[] yourUsers) {
            MyUser[] myUsers 
= null;
            
// 方式1: 使用Linq
            myUsers = (from user in yourUsers
                       select 
new MyUser
                              {
                                  Id 
= user.Id, 
                                  Name 
= user.Name
                              }).ToArray();
            
// 方式2: 使用Lambda表达式
            myUsers = yourUsers.Select(user => new MyUser
                                               {
                                                   Id 
= user.Id, 
                                                   Name 
= user.Name
                                               }).ToArray();

            
return myUsers;
        }

        
/// <summary>
        
/// 把List<YourUser>转换为List<MyUser>
        
/// </summary>
        public List<MyUser> ToMyUserList(List<YourUser> yourUsers) {
            List
<MyUser> myUsers = null;
            
// 方式1: 使用Linq
            myUsers = (from user in yourUsers
                       select 
new MyUser
                              {
                                  Id 
= user.Id,
                                  Name 
= user.Name
                              }).ToList();
            
// 方式2: 使用Lambda表达式
            myUsers = yourUsers.Select(user => new MyUser
                                               {
                                                   Id 
= user.Id, 
                                                   Name 
= user.Name
                                               }).ToList();

            
return myUsers;
        }
    }
}

转载于:https://www.cnblogs.com/xmlspy/archive/2008/08/05/1261560.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值