需求:

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

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

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

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

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

 解决方法:

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

Linq--使用Linq在不同类型之间转换相关推荐

  1. Go : 类型之间转换数字的测试(附完整源码)

    Go : 类型之间转换数字的测试 package main var i8 int8; var u8 uint8; var i16 int16; var u16 uint16; var i32 int3 ...

  2. opencv中Mat与IplImage,CVMat类型之间转换

    opencv中对图像的处理是最基本的操作,一般的图像类型为IplImage类型,但是当我们对图像进行处理的时候,多数都是对像素矩阵进行处理,所以这三个类型之间的转换会对我们的工作带来便利. Mat类型 ...

  3. python变量类型之间转换_【Python】Python 变量类型(变量赋值,数据类型,数据转换)...

    目录 Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间.基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中.因此,变量可以指定不同的数 ...

  4. python变量类型之间转换_python学习笔记5—数据类型转换

    数据类型转换 16进制和10进制之间转换In [18]: int('a',16) 把16进制的a转换为10进制的10,16说明a是16进制数 Out[18]: 10 In [13]: int('0xa ...

  5. C语言各种类型之间转换详解

    目录 1. C基本类型变量 2. 符号扩展 2.1 规则一: 2.2 规则二: 2.3 规则三: 3. 零扩展 4. 长类型转换为短类型 5. 自动类型转换 5.1 赋值时的类型转换 5.2 运算时的 ...

  6. python变量类型之间转换_Python常用数据类型之间的转换总结

    函数 描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 complex(real [,imag]) ...

  7. 【MATLAB Image Processing Toolbox 入门教程六】“导入、导出和转换”之“图像类型转换Ⅰ——在不同图像类型之间转换”

    [MATLAB Image Processing Toolbox 入门教程六] 1 gray2ind函数 2 ind2gray函数 3 mat2gray函数 4 rgb2gray函数 5 rgb2in ...

  8. 枚举类型和各种类型之间转换

    //声明枚举public enum Sesons{春,夏,秋,冬}static void Main(string[] args){Sesons s = Sesons.春;string str=&quo ...

  9. python变量类型之间转换_Python变量赋值类型转换

    原博文 2018-01-22 22:05 − 1.Python定义变量 1 name = cross10 2 print('name=',name) 打印结果: name=cross10 2.Pyth ...

最新文章

  1. 生成树计数Matrix-Tree定理-数学
  2. Winform中给DataGridView添加多选框列并获取选中行的内容
  3. 产品报价单模板_一文说透报价单,这么做才是专业!附模板及注意事项
  4. 卡尔曼滤波器(Kalman Filter) 理解
  5. 他是我们内心世界的一员 (见信息时报2011年7月10日)
  6. Android:SharedPreferences详解+示例
  7. 问题解决:pip无法使用,经升级后可以使用
  8. NonComVisibleBaseClass Exception
  9. 04,Django Form源码阅读
  10. linux 每日学一点《将LINUX变成路由器》
  11. 计算机加密是什么意思,bitlocker驱动加密是什么意思?
  12. 「大数据干货」基于Hadoop的大数据平台实施——整体架构设计
  13. css设置行高居中,CSS line-height行高上下居中垂直居中样式属性
  14. 桌面图标背景色解决方案
  15. 不同vlan实现互通
  16. 现货黄金入门:初识心理
  17. 神奇的sqrt函数以及高精度记时函数
  18. H5 canvas基础入门到捕鱼达人小游戏实现(1)
  19. Python math.erfc() 方法
  20. 极客大学产品经理训练营:产品文档和原型咋弄 - 流程图 第9课总结

热门文章

  1. python中类的方法里面变量前加self与不加self的区别
  2. 【Spark Summit EU 2016】摆脱传统ETL,让我们走向Spark吧!
  3. PYTHON 高效编程
  4. loadrunner脚本中参数有中文时报错
  5. Linux命令Find实例
  6. Dll 导出类 [示例代码]
  7. linux版本的edge多网页标签(tag)不见了咋办
  8. FastDfs上传图片时报错configparser.NoOptionError: No option ‘connect_timeout‘ in section: ‘__config__‘
  9. protoc: error while loading shared libraries: libprotoc.so.8: cannot open shared object file
  10. 音频的音量检测java实现_免费剪切和合并音频,小白必读