如何使用Linq将对象投影到列表中?

Geo*_*ton 4 c# linq

我发现自己总是需要在通过电线发送物体之前将其弄薄.

背景:

Position是一个沉重的竞争者,它是由LINQ to SQL根据我的表生成的.它存储数据的母亲.

SPosition是一个轻量级的对象,它只存储我的纬度和长度.

码:

 List<SPosition> spositions = new List<SPosition>();
 foreach (var position in positions)  // positions = List<Position>
 {
    SPosition spos = new SPosition { latitude = position.Latitude, longitude = position.Longitude };
    spositions.Add(spos);
 }

 return spositions.SerializeToJson<List<SPosition>>();
Run Code Online (Sandbox Code Playgroud)

我怎样才能使用一些LINQ魔法来清理它?

Ed *_*pel 13

var spositions = positions.Select(
                     position => new SPosition
                         {
                             latitude = position.Latitude,
                             longitude = position.Longitude
                         }).ToList();
Run Code Online (Sandbox Code Playgroud)


Dar*_*rov 6

return positions
    .Select(x => new SPosition 
    { 
        latitude = x.Latitude, 
        longitude = x.Longitude 
    })
    .ToList()
    .SerializeToJson<List<SPosition>>();
Run Code Online (Sandbox Code Playgroud)