加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用Lambda或LINQ将类实例转换或映射到另一个实例的列表?

发布时间:2020-12-16 00:11:49 所属栏目:百科 来源:网络整理
导读:我有以下两个类: class MyData { public Liststring PropertyList { get; private set;} public string PropertyB { get; set; } public string PropertyC { get; set; }}class MyData2 { public string PropertyA { get; set;} public string PropertyB {
我有以下两个类:

class MyData {
  public List<string> PropertyList { get; private set;}
  public string PropertyB { get; set; }
  public string PropertyC { get; set; }
}

class MyData2 {
  public string PropertyA { get; set;}
  public string PropertyB { get; set; }
  public string PropertyC { get; set; }
}

如果我有一个MyClass实例,我需要将其转换为MyData2列表.我可以通过循环MyData.PropertyList并缓存其他属性值并将它们插入MyData2列表来实现,如下所示:

string propertyB = myData.PropertyB;
string propertyC = myData.PropertyC;
List<MyData2> myData2List = new List<MyData>();
foreach(string item in myData.PropertyList)
{
  myData2List.Add(new myData2() { item,propertyB,propertyC });
}

不确定是否可以使用LINQ或Lambda表达式的.Net 3.5功能完成此操作?

解决方法

这很好,很容易.您希望基于特定列表中的每个项目(字符串)执行某些操作,因此请将其作为查询表达式的起点.您想为每个字符串创建一个新项目(MyData2),因此您可以使用投影.您想在最后创建一个列表,因此您可以调用ToList()来完成作业:

var myData2List = myData.PropertyList
                         .Select(x => new MyData2 { 
                             PropertyA = x,PropertyB = myData.PropertyB,PropertyC = myData.PropertyC })
                         .ToList();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读