Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Linq Select Certain Properties Into Another Object?

So say I have a collection of Bloops

Class Bloop   Public FirstName   Public LastName   Public Address   Public Number   Public OtherStuff End Class 

Then I have a class of Razzies

Class Razzie   Public FirstName   Public LastName End Class 

Is it possible using Linq to select the FirstName and LastName out of all the Bloops in the collection of Bloops and return a collection of Razzies? Or am i limited to a For-Loop to do my work?

To clear up any confusion, either VB or C# will do. Also this will probably lead to me asking the question of (What about using a "Where" clause).

like image 570
Russ Bradberry Avatar asked May 28 '09 21:05

Russ Bradberry


2 Answers

List<Bloop> myBloops = new List<Bloops>; //populate myRazzies List<Razzie> myRazzies = myBloops.Select(x => new Razzie() { FirstName = x.FirstName, LastName = x.LastName}).ToList(); 
like image 99
KClough Avatar answered Sep 21 '22 21:09

KClough


This should do the job:

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

And if you want to convert the result from IEnumerable<Bloop> (what the LINQ query returns) to an array or List<Bloop>, just append a call to the ToArray() or ToList() extension methods respectively.

Edit: Corrected the code so that it now has valid VB.NET 9 syntax.

like image 32
Noldorin Avatar answered Sep 17 '22 21:09

Noldorin