我有以下两个类:
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功能完成此操作?
Jon*_*eet 13
这很好,很容易.您希望基于特定列表中的每个项目(字符串)执行某些操作,因此请将其作为查询表达式的起点.您想MyData2为每个字符串创建一个新项目(a ),因此您可以使用投影.你想在最后创建一个列表,所以你打电话ToList()来完成这项工作:
 var myData2List = myData.PropertyList
                         .Select(x => new MyData2 { 
                             PropertyA = x, 
                             PropertyB = myData.PropertyB, 
                             PropertyC = myData.PropertyC })
                         .ToList();
| 归档时间: | 
 | 
| 查看次数: | 3764 次 | 
| 最近记录: |