gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 13:25:06 25 4
gpt4 key购买 nike

我有以下两个类:

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();

关于c# - 使用 Lambda 或 LINQ 将一个类实例转换或映射到另一个实例的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1176038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com