Сегодня 6 мая, понедельник ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7272
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
coding4.net
coding4.net
Голосов: 1
Адрес блога: http://www.coding4.net/
Добавлен: 2012-06-11 20:16:46
 

Пример Inner Join на C# и LINQ

2012-07-12 17:26:00 (читать в оригинале)

Давайте рассмотрим пример метода Join в LINQ и C#. Метод Join выполняет внутреннее объединение над двумя последовательностями, корреляция элементов этих последовательностей основывается на совпадении ключей. Это называется объединение по равенству, потому как мы проверяем на равенсво, используя оператор равенства.

Каr вы знаете из реляционных баз данных, внутреннее объединение сопоставляет каждому элементу первой последовательности, соответствующий элемент из второй последовательности. Это если в сравнении участвуют уникальные ключи. Если соответствующего элемента второй последовательности нет, то элемент первой последовательности также на попадает в выходную последовательность. Метод Join() в LINQ работает точно также.

Мы будем использовать два класса Book и Order и используем Join над ними. Здесь пример данных:

class Program
{
static void Main(string[] args)
{
List<Book> bookList = new List<Book>
{
new Book{BookID=1, BookNm="DevCurry.com Developer Tips"},
new Book{BookID=2, BookNm=".NET and COM for Newbies"},
new Book{BookID=3, BookNm="51 jQuery ASP.NET Recipes"},
new Book{BookID=4, BookNm="Motivational Gurus"},
new Book{BookID=5, BookNm="Spiritual Gurus"}
};

List<Order> bookOrders = new List<Order>{
new Order{OrderID=1, BookID=1, PaymentMode="Cheque"},
new Order{OrderID=2, BookID=5, PaymentMode="Credit"},
new Order{OrderID=3, BookID=1, PaymentMode="Cash"},
new Order{OrderID=4, BookID=3, PaymentMode="Cheque"},
new Order{OrderID=5, BookID=3, PaymentMode="Cheque"},
new Order{OrderID=6, BookID=4, PaymentMode="Cash"}
};
}
}

public class Book
{
public int BookID { get; set; }
public string BookNm { get; set; }
}

public class Order
{
public int OrderID { get; set; }
public int BookID { get; set; }
public string PaymentMode { get; set; }
}

А здесь пример кода, применяющего Join над коллекциями книг и заказов.

var orderForBooks = from bk in bookList
join ordr in bookOrders
on bk.BookID equals ordr.BookID
select new
{
bk.BookID,
Name = bk.BookNm,
ordr.PaymentMode
};

foreach (var item in orderForBooks)
Console.WriteLine(item);

Console.ReadLine();

В коде показанном вверху для сравнения используется оператор равенства. Результат операции помещаем в анонимный тип, который включает BookID, BookName, OrderPaymentMode.

Это перевод. Оригинал здесь.

Тэги: (решение), linq, object, сделать

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по сумме баллов (758) в категории «Истории»


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.