需求:
有两个类型,分别为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; }
}
}
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; }
}
}
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;
}
}
}
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;
}
}
}