【发布时间】:2021-09-09 11:27:57
【问题描述】:
using System;
using System.Linq;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
// Customer collection
IList<Customer> CustomertList = new List<Customer>() {
new Customer() { CustomerID = 1, CustomerName = "John", OrderID = 04 } ,
new Customer() { CustomerID = 2, CustomerName = "Moin", OrderID = 07 } ,
};
// Transaction collection
IList<Transaction> TransactionList = new List<Transaction>() {
new Transaction() { TransactionID = 1, OrderID = 04, Purchased = "TV",StoreName ="Amazon"} ,
new Transaction() { TransactionID = 2, OrderID = 07, Purchased = "Laptop",StoreName ="Ebay"} ,
new Transaction() { TransactionID = 3, OrderID = 07, Purchased = "Mobile",StoreName ="Ebay"} ,
};
// LINQ Query
var result =(from Cus in CustomertList
join TRan in TransactionList on Cus.OrderID equals TRan.OrderID
select new
{
CustomerName =Cus.CustomerName,
OrderID = Cus.OrderID,
StoreName =TRan.StoreName
}).ToList();
foreach(var Cus in result){
Console.WriteLine( "Name - {0} , Order ID - {1} , StoreName - {2}",Cus.CustomerName , Cus.OrderID,Cus.StoreName);
}
}
}
public class Customer
{
public int CustomerID { get; set; }
public string CustomerName { get; set; }
public int OrderID { get; set; }
}
public class Transaction
{
public int TransactionID { get; set; }
public int OrderID { get; set; }
public string Purchased { get; set; }
public string StoreName { get; set; }
}
结果:
名称 - 约翰,订单 ID - 4,商店名称 - 亚马逊
名称 - Moin,订单 ID - 7,商店名称 - Ebay
名称 - Moin,订单 ID - 7,商店名称 - Ebay
从上面的代码我得到上面的结果,我需要显示所有订单和客户名称以及他们购买的商店,但是我得到重复的值,我输入了正常的连接查询,但我需要低于预期的结果.
预期结果:
名称 - 约翰,订单 ID - 4,商店名称 - 亚马逊
名称 - Moin,订单 ID - 7,商店名称 - Ebay。
【问题讨论】: