我有以下两个课程:
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 });
}
不确定是否可以使用 .Net 3.5 的 LINQ 或 Lambda 表达式功能来完成此操作?
这既美好又简单。您想要根据特定列表中的每个项目(字符串)执行某些操作,因此请将其作为查询表达式的起点。您想要创建一个新项目(MyData2
) 对于每个字符串,因此您使用投影。你想在最后创建一个列表,所以你调用ToList()
完成工作:
var myData2List = myData.PropertyList
.Select(x => new MyData2 {
PropertyA = x,
PropertyB = myData.PropertyB,
PropertyC = myData.PropertyC })
.ToList();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)