Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用Linq查询检索数据_C#_Linq - Fatal编程技术网

C# 如何使用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

我是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 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是链接对于新问题,,