views:

1876

answers:

3

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).

+4  A: 
List<Bloop> myBlops = new List<Bloops>;
//populate myBloops
List<Razzie> myRazzies = myBloops.Select(x => new Razzie() { FirstName = x.FirstName, LastName = x.LastName}).ToList();
KClough
Yeah, except that's C#.
Noldorin
C# is one of the tags listed in the question.
KClough
+5  A: 

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.

Noldorin
ill accept either language as I am proficient in both
Russ Bradberry
Fair enough. I just thought you'd prefer it in VB.NET since that's what your code samples were in. :)
Noldorin
can you edit your post to be correct c# syntax, as it is not correct vb syntax. that way i can better understand what is going on.
Russ Bradberry
@Noldorin re: other comment... thanks. indeed I had misread it. For some reason I read it as him having two collections.
Eoin Campbell
@Russ: Ah, those darn underscores. Completely forgot about them! Should compile fine now.
Noldorin
A: 

Transforming from one type into another can be accomplished by using Enumerable.Select

In fact, there is a sample from 101 linq samples that shows a query transforming ints into strings.

David B