Linq选择某些属性到另一个对象?

Rus*_*rry 26 .net c# linq vb.net .net-3.5

所以说我有一系列Bloops

Class Bloop
  Public FirstName
  Public LastName
  Public Address
  Public Number
  Public OtherStuff
End Class
Run Code Online (Sandbox Code Playgroud)

然后我有一类Razzies

Class Razzie
  Public FirstName
  Public LastName
End Class
Run Code Online (Sandbox Code Playgroud)

是否可以使用Linq从Bloops集合中的所有Bloops中选择FirstName和LastName并返回一组Razzies?或者我只限于For-Loop来完成我的工作?

要清除任何混淆,VB或C#都可以.这也可能导致我提出问题(如何使用"Where"子句).

KCl*_*ugh 42

List<Bloop> myBloops = new List<Bloops>;
//populate myRazzies
List<Razzie> myRazzies = myBloops.Select(x => new Razzie() { FirstName = x.FirstName, LastName = x.LastName}).ToList();
Run Code Online (Sandbox Code Playgroud)

  • C#是问题中列出的标签之一. (11认同)

Nol*_*rin 29

这应该做的工作:

Dim results = From item In bloops _
              Select New Razzie() With _
              { _
                  .FirstName = item.FirstName, _
                  .LastName = item.LastName _
              }
Run Code Online (Sandbox Code Playgroud)

如果要将结果从IEnumerable<Bloop>(LINQ查询返回的内容)转换为数组,或者List<Bloop>只是分别附加对ToArray()ToList()扩展方法的调用.

编辑:更正了代码,使其现在具有有效的VB.NET 9语法.