кодесурса
«C #

Упражнения C # Sharp: создание правого соединения между двумя наборами данных

script1adsense2code
script1adsense3code

C # Sharp LINQ: упражнение 27 с решением

Напишите программу на C # Sharp для генерации правого внешнего соединения между двумя наборами данных.

Пример решения : -

C # острый код:

//LINQ does not supports right outer join, only supports left outer joins. 
//You can get the behavior of a right outer join if you swap the tables and do a left outer join.
using System;
using System.Linq;
using System.Collections.Generic;
 
class  LinqExercise27
{
    static void Main(string[] args)
    {
        
        List<Item_mast> itemlist = new List<Item_mast>
	        {  
           new Item_mast { ItemId = 1, ItemDes ="Biscuit  " }, 
           new Item_mast { ItemId = 2, ItemDes ="Chocolate" }, 
           new Item_mast { ItemId = 3, ItemDes ="Butter   " },  
           new Item_mast { ItemId = 4, ItemDes ="Brade    " },  
           new Item_mast { ItemId = 5, ItemDes ="Honey    " }  
            }; 
		  
        List<Purchase> purchlist = new List<Purchase>
	        {  
           new Purchase { InvNo=100, ItemId = 3,  PurQty = 800 }, 
           new Purchase { InvNo=101, ItemId = 5,  PurQty = 650 }, 
           new Purchase { InvNo=102, ItemId = 3,  PurQty = 900 },  
           new Purchase { InvNo=103, ItemId = 4,  PurQty = 700 },
		   new Purchase { InvNo=104, ItemId = 3,  PurQty = 900 },  
           new Purchase { InvNo=105, ItemId = 4,  PurQty = 650 },  		   
           new Purchase { InvNo=106, ItemId = 1,  PurQty = 458 }  
            }; 
	
            Console.Write("\nLINQ : Generate a Right Join between two data sets : "); 
            Console.Write("\n--------------------------------------------------\n");
			Console.Write("Here is the Item_mast List : ");
			Console.Write("\n-------------------------\n");
			
			 foreach (var item in itemlist)
				{
				Console.WriteLine(
				"Item Id: {0}, Description: {1}",
				item.ItemId,
				item.ItemDes);
				}
			Console.Write("\nHere is the Purchase List : ");
			Console.Write("\n--------------------------\n");
			
			 foreach (var item in purchlist)
				{
				Console.WriteLine(
				"Invoice No: {0}, Item Id : {1},  Quantity : {2}",
				item.InvNo,
				item.ItemId,
				item.PurQty);
				}
            Console.Write("\nHere is the list after joining  : \n\n");
 var rightOuterJoin = from p in purchlist
            		join i in itemlist
            		on p.ItemId equals i.ItemId
            		into a
            			from b in a.DefaultIfEmpty()
            			select new
            			{
                		itid=b.ItemId,
               			itdes = b.ItemDes,
                		prqty=p.PurQty
            			};
		    Console.WriteLine("Item ID\t\tItem Name\tPurchase Quantity");
			Console.WriteLine("-------------------------------------------------------");
			foreach (var data in rightOuterJoin )  
			{  
				Console.WriteLine(data.itid + "\t\t" + data.itdes + "\t\t" + data.prqty);  
			}           
             Console.ReadLine();
    }
}
public class Item_mast
{
    public int ItemId { get; set; }
    public string ItemDes { get; set; }
}
public class Purchase
{
    public int InvNo { get; set; }
    public int ItemId { get; set; }
    public int PurQty { get; set; }
}

Пример вывода:

 LINQ: Генерация правого соединения между двумя наборами данных:                                                          
--------------------------------------------------                                                            
Вот список Item_mast:                                                                                  
-------------------------                                                                                     
Item Id: 1, Описание: печенье                                                                              
Item Id: 2, Описание: Шоколад                                                                            
Item Id: 3, Описание: Масло                                                                               
Идентификатор товара: 4, Описание: Brade                                                                                
Item Id: 5, Описание: Мед                                                                                
   
Вот список покупок:                                                                                   
--------------------------                                                                                    
Счет №: 100, Идентификатор товара: 3, Количество: 800                                                                 
Счет № 101, Товар №: 5, Количество: 650                                                                 
Счет № 102, Идентификатор товара: 3, Количество: 900                                                                 
Счет № 103, Идентификатор товара: 4, Количество: 700                                                                 
Счет № 104, Код товара: 3, Количество: 900                                                                 
Счет № 105, Код товара: 4, Количество: 650                                                                 
Счет № 106, Код товара: 1, Количество: 458
Вот список после присоединения:                                                                             
   
Идентификатор товара Название товара Покупка Количество                                                             
-------------------------------------------------- -----                                                       
3 масла 800                                                                   
5 Мед 650                                                                   
3 масла 900                                                                   
4 Brade 700                                                                   
3 масла 900                                                                   
4 Brade 650                                                                   
1 печенье 458

Блок - схема:

«Блок-схема:

Редактор кода C # Sharp:

Внесите свой код и комментарии через Disqus.

Предыдущий: Написать программу на C # Sharp для генерации левого соединения между двумя наборами данных.
Далее: Написать программу на C # Sharp для отображения списка элементов в массиве в соответствии с длиной строки, затем по имени в порядке возрастания.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code