Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

C# Querying With LINQ Now You're Querying Selecting, Projecting and Anonymous Types

Problem creating anonymous variable with Linq query...or problems trying to satisfy question.

I got a message saying "pelican" should be in the Results...well when I do this on Microsoft visual studio I saw pelican in the results. So, what is the problem with this?

And I've already tried it with just the "from BirdName in birds where BirdName.Color == mysteryBird.Color select BirdName.Name," and not the Birb color afterwards, but then I got a message saying there should be two elements.

var birds = new[] 
    new { Name = "Pelican", Color = "White" }, 
    new { Name = "Swan", Color = "White" }, 
    new { Name = "Crow", Color = "Black" } 

var mysteryBird = new {Color = "White",Sightings = 3};

var matchingBirds = new[]
     from BirdName in birds where BirdName.Color == mysteryBird.Color select BirdName.Name,
     from BirdName in birds where BirdName.Color == mysteryBird.Color select BirdName.Color

I think you should write just Name instead of BirdName.

The exact wording of the challenge "Challenge Task 2 of 2

Create a variable named matchingBirds and assign it a LINQ query on the birds variable that have the same Color property as the mysteryBird object. In the query, return an anonymous type with a property named BirdName and assign to it the Name property of the birds."

I changed it to "Name" then got this message

" Bummer! Does the anonymous type in your variable "matchingBirds" contain a property named "BirdName"?"

There wasn't a compiler error, it just wants it to specifically have the name "BirdName"

I don't think that is the problem though.

I have resolved your problem. Here is the correct answer (please check if it works)

var matchingBirds = from s in birds where s.Color == mysteryBird.Color select new { BirdName=s.Name };

James Churchill
James Churchill
Treehouse Teacher

Hi Joshua!

Did Irem's last suggestion work for you?

Thanks ~James