В данном примере имена свойств остаются такими же, как и прежде, а компилятор автоматически "проецирует" идентификаторыNameиInStock,превращая их в свойства анонимного типа. Этим свойствам присваиваются прежние значения, обозначаемыеitem.Nameиentry. InStockсоответственно.
Создание группового объединения
Как пояснялось ранее, операторintoможно использовать вместе с операторомjoinдля создания
В приведенном ниже примере программы групповое объединение используется для составления списка, в котором различные транспортные средства (автомашины, суда и самолеты) организованы по общим для них категориям транспорта: наземного, морского, воздушного и речного. В этой программе сначала создается классTransport,связывающий вид транспорта с его классификацией. Затем в методеMain() формируются две входные последовательности. Первая из них представляет собой массив символьных строк, содержащих названия общих категорий транспорта: наземного, морского, воздушного и речного, а вторая — массив объектов типаTransport,инкапсулирующих различные транспортные средства. Полученное в итоге групповое объединение используется для составления списка транспортных средств, организованных по соответствующим категориям.
// Продемонстрировать применение простого группового объединения.
using System; using System.Linq;
*
// Этот класс связывает наименование вида транспорта,
// например поезда, с общей классификацией транспорта:
// наземного, морского, воздушного или речного, class Transport {
public string Name { get; set; } public string How { get; set; }
public Transport(string n, string h) {
Name = n;
How = h;
}
}
class GroupJoinDemo { static void Main() {
// Массив классификации видов транспорта, string[] travelTypes = {
"Воздушный",
"Морской",
"Наземный",
"Речной",
};
// Массив видов транспорта.
Transport[] transports = { 1