C# 如何使用Linq查询检索数据
我是LINQ的新手,显然在编写查询时遇到了困难 这是我的代码:C# 如何使用Linq查询检索数据,c#,linq,C#,Linq,我是LINQ的新手,显然在编写查询时遇到了困难 这是我的代码: public class Customer { public int cid { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string City { get; set; } } public class Order { public int Or
public class Customer
{
public int cid { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string City { get; set; }
}
public class Order
{
public int Orderid { get; set; }
public int customerid { get; set; }
public int Quantity { get; set; }
}
static void Main(string[] args)
{
List<Customer> customerList = new List<Customer>
{
new Customer(){cid=1,FirstName="Avinash",LastName="Kothamasu",City="Chennai"},
new Customer(){cid=2,FirstName="Abhiram",LastName="Kumar",City="Chennai"},
new Customer{cid=3,FirstName="Balu",LastName="Chinna",City="Chennai"},
new Customer{cid=4,FirstName="Sai",LastName="Kothamasu",City="Bhimavaram"},
new Customer{cid=5,FirstName="Harshita",LastName="Kothamasu",City="Bhimarvarm"},
new Customer{cid=6,FirstName="Mounika",LastName="Kothamasu",City="Guntur"}
};
List<Order> orderList = new List<Order>
{
new Order(){Orderid=11,customerid=1,Quantity=20},
new Order(){Orderid=111,customerid=1,Quantity=10},
new Order(){Orderid=22,customerid=2,Quantity=15},
new Order(){Orderid=222,customerid=2,Quantity=8},
new Order(){Orderid=22222,customerid=2,Quantity=50},
new Order(){Orderid=33,customerid=3,Quantity=10},
new Order(){Orderid=333,customerid=3,Quantity=5},
new Order(){Orderid=44,customerid=4,Quantity=4},
new Order(){Orderid=55,customerid=5,Quantity=1},
new Order(){Orderid=66,customerid=6,Quantity=2}
};
var OrderListforCustomers = from c in customerList
join o in orderList on
c.cid equals o.customerid
where o.Quantity > 1 && o.Quantity <= 50
group new { c, o } by new { o.customerid, c.FirstName, c.LastName, c.City } into customergroups
orderby customergroups.Key.customerid
select new
{
CustomerID = customergroups.Key.customerid,
CustomerName = customergroups.Key.FirstName.ToUpper() + " , " + customergroups.Key.LastName.ToUpper(),
City = customergroups.Key.City,
MaximumQuantityCount = customergroups.Select(x=>x.o).Max(x=>x.Quantity),
*OrderIDwithMaxQuanCount=customergroups.Select(x=>x.o.Orderid).Where();*
};
Console.Write("CID" + " || ");
Console.Write("CustomerName" + " || ");
Console.Write("City" + " | ");
Console.Write("MaximumQuantityCount" + " || ");
Console.Write("OrderIDwithMaxCount");
Console.WriteLine(Environment.NewLine);
foreach (var custgroup in OrderListforCustomers)
{
Console.Write(custgroup.CustomerID + " || ");
Console.Write(custgroup.CustomerName + " || ");
Console.Write(custgroup.City + " || ");
Console.Write(custgroup.MaximumQuantityCount + " || ");
Console.Write(Environment.NewLine);
Console.ReadLine();
公共类客户
{
公共int-cid{get;set;}
公共字符串名{get;set;}
公共字符串LastName{get;set;}
公共字符串City{get;set;}
}
公共阶级秩序
{
公共int-Orderid{get;set;}
public int customerid{get;set;}
公共整数数量{get;set;}
}
静态void Main(字符串[]参数)
{
列表customerList=新列表
{
新客户(){cid=1,FirstName=“Avinash”,LastName=“Kothamasu”,City=“Chennai”},
新客户(){cid=2,FirstName=“Abhiram”,LastName=“Kumar”,City=“Chennai”},
新客户{cid=3,FirstName=“Balu”,LastName=“Chinna”,City=“Chennai”},
新客户{cid=4,FirstName=“Sai”,LastName=“Kothamasu”,City=“Bhimavaram”},
新客户{cid=5,FirstName=“Harshita”,LastName=“Kothamasu”,City=“Bhimarvarm”},
新客户{cid=6,FirstName=“Mounika”,LastName=“Kothamasu”,City=“Guntur”}
};
List orderList=新列表
{
新订单(){Orderid=11,customerid=1,Quantity=20},
新订单(){Orderid=111,customerid=1,Quantity=10},
新订单(){Orderid=22,customerid=2,Quantity=15},
新订单(){Orderid=222,customerid=2,Quantity=8},
新订单(){Orderid=22222,customerid=2,Quantity=50},
新订单(){Orderid=33,customerid=3,Quantity=10},
新订单(){Orderid=333,customerid=3,Quantity=5},
新订单(){Orderid=44,customerid=4,Quantity=4},
新订单(){Orderid=55,customerid=5,Quantity=1},
新订单(){Orderid=66,customerid=6,Quantity=2}
};
var OrderListforCustomers=来自customerList中的c
在上的订单列表中加入o
c、 cid等于o.customerid
其中o.数量>1和o.数量x.o).Max(x=>x.数量),
*OrderIDwithMaxQuanCount=customergroups.Select(x=>x.o.Orderid.Where()*
};
控制台。写入(“CID”+“| |”);
Console.Write(“CustomerName”+“| |”);
控制台。写入(“城市”+“|”);
控制台。写入(“MaximumQuantityCount”+“| |”);
Console.Write(“OrderIDwithMaxCount”);
Console.WriteLine(Environment.NewLine);
foreach(OrderListforCustomers中的var custgroup)
{
Console.Write(custgroup.CustomerID+“| |””;
Console.Write(custgroup.CustomerName+“| |”);
Console.Write(custgroup.City+“| |”);
Console.Write(custgroup.MaximumQuantityCount+“| |””;
Console.Write(Environment.NewLine);
Console.ReadLine();
在这里,我试图做的是打印客户详细信息以及带有一些条件的订单详细信息
我需要打印数量最大的客户的订单ID
我能够为特定客户重设MaxOrderCount,但无法获取数量最大的订单id
在查询中,select子句的最后一行,我在如何编写方面遇到了一些困难
请帮助。您可以先订购,然后按如下方式选择:
OrderIDwithMaxQuanCount=customergroups.OrderByDescending(x => x.o.Quantity)
.Select(x => x.o.Orderid).FirstOrDefault()
您可以先订购,然后按如下方式选择:
OrderIDwithMaxQuanCount=customergroups.OrderByDescending(x => x.o.Quantity)
.Select(x => x.o.Orderid).FirstOrDefault()
@Aducci…像个魔术师一样工作很长时间以来一直在打断我的头。。Thanks@AvinashKothamasu,我很高兴我能帮上忙:)…我在这里有点疑问..我能在分组条款下的按订单条款中按数量订购吗???@AvinashKothamasu,我不明白…我会提出另一个问题,我可能能够help@Aducci..here是新q的链接吗uestion,,@Aducci…像一个魔咒一样工作..很久以来一直在打断我的头。。Thanks@AvinashKothamasu,我很高兴我能帮上忙:)…我在这里有点疑问..我能在分组条款下的按订单条款中按数量订购吗???@AvinashKothamasu,我不明白…我会提出另一个问题,我可能能够help@Aducci..here是链接对于新问题,,