Wil*_* Jr 1 c# linq linq-to-entities
我试图将我的两个不同实体组合成一个新实体.这是我的类实体的示例:
public class CarOne
{
public string Name { get; set; }
public string Model { get; set; }
}
public class CarTwo
{
public int Year { get; set; }
public string Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在我想将我的两个内容列表保存到这个新实体中:
public class CarFinal
{
public string Name { get; set; }
public string Model { get; set; }
public int Year { get; set; }
public string Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
以下是我的代码示例:
CarOne carToyota = new CarOne()
{
Name = "Toyota",
Model = "Camry"
};
CarTwo carDetails = new CarTwo()
{
Year = 2012,
Description = "This is a great car"
};
List<CarOne> lstFirst = new List<CarOne>();
lstFirst.Add(carToyota);
List<CarTwo> lstSecond = new List<CarTwo>();
lstSecond.Add(carDetails);
Run Code Online (Sandbox Code Playgroud)
现在这是我想要做的,我试图将这两个包含相同数量元素的列表组合在一起,在这种情况下,两个List都包含一个元素.到目前为止我尝试过的是:
var result1 = lstFirst.Select(x => new CarFinal
{
Name = x.Name,
Model = x.Model
}).ToList();
var result2 = lstSecond.Select(x => new CarFinal
{
Year = x.Year,
Description = x.Description
}).ToList();
List<CarFinal> lstFinal = new List<CarFinal>();
lstFinal = result1.Union(result2).ToList();
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
lstFinal = result1.Concat(result2).ToList();
Run Code Online (Sandbox Code Playgroud)
但是这两种方法的输出都会产生两个元素,我试图将所有属性合并为一个.我只期待一个实体作为结果,但我总是在我的组合上得到两个元素.
使用Zip这样:
var finalList = lstFirst.Zip(lstSecond, (c1, c2) => new CarFinal()
{
Name = c1.Name,
Model = c1.Model,
Description = c2.Description,
Year = c2.Year
}).ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
258 次 |
| 最近记录: |