25.07.2017 Views

Intro-CSharp-Book-v2015

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Глава 22. Ламбда изрази и LINQ заявки 933<br />

}<br />

public string Name { get; set; }<br />

При изпълнението на този код:<br />

List categories = new List()<br />

{<br />

new Category() { ID = 1, Name = "Fruit" },<br />

new Category() { ID = 2, Name = "Food" },<br />

new Category() { ID = 3, Name = "Shoe" },<br />

new Category() { ID = 4, Name = "Juice" },<br />

};<br />

List products = new List()<br />

{<br />

new Product() { Name = "Strawberry", CategoryID = 1 },<br />

new Product() { Name = "Banana", CategoryID = 1 },<br />

new Product() { Name = "Chicken meat", CategoryID = 2 },<br />

new Product() { Name = "Apple Juice", CategoryID = 4 },<br />

new Product() { Name = "Fish", CategoryID = 2 },<br />

new Product() { Name = "Orange Juice", CategoryID = 4 },<br />

new Product() { Name = "Sandal", CategoryID = 3 },<br />

};<br />

var productsWithCategories =<br />

from product in products<br />

join category in categories<br />

on product.CategoryID equals category.ID<br />

select new {<br />

Name = product.Name,<br />

Category = category.Name };<br />

foreach (var item in productsWithCategories)<br />

{<br />

Console.WriteLine(item);<br />

}<br />

Резултатът е:<br />

{ Name = Strawberry, Category = Fruit }<br />

{ Name = Banana, Category = Fruit }<br />

{ Name = Chicken meat, Category = Food }<br />

{ Name = Apple Juice, Category = Juice }<br />

{ Name = Fish, Category = Food }<br />

{ Name = Orange Juice, Category = Juice }<br />

{ Name = Sandal, Category = Shoe }<br />

В горния пример си създаваме два класа и мислена релация (връзка) между<br />

тях. На всеки продукт съответства някаква категория CategoryID (под<br />

формата на число), което отговаря на числото ID от класа Category в<br />

колекцията categories. Ако искаме да използваме тази релация и да си<br />

създадем нов анонимен тип, в който да запишем продуктите с тяхното име

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!