Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.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

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 以下是我的两套代码: var qry = from x in CustomersChecks.CustomersChecksList where x.RoutingNumber == routingnumber && x.BankAccountNumber == bankAccountNumber && x.Branch > 0

我不知道如何做到这一点,因为我只熟悉基本形式或Linq

以下是我的两套代码:

      var qry = from x in CustomersChecks.CustomersChecksList
        where x.RoutingNumber == routingnumber &&
              x.BankAccountNumber == bankAccountNumber &&
          x.Branch > 0 &&
          x.AccountNumber > 0
          orderby x.Name
        select x;

  var qry2 = qry.GroupBy(x => new { x.Branch, x.AccountNumber}).Select(x => x.First()).ToList();
最后,我想按照分行+账号的顺序得到我的第一个查询

它们能结合起来吗?还是我唯一能做到这一点的方法


提前感谢

快速而肮脏的解决方案就是将
GroupBy
链添加到第一个查询的末尾

var qry = CustomersChecks.CustomersChecksList.Where(x =>
    x.RoutingNumber == routingnumber &&
    x.BankAccountNumber == bankAccountNumber &&
    x.Branch > 0 &&
    x.AccountNumber > 0).OrderBy(x => x.Name)
    .GroupBy(x => new { x.Branch, x.AccountNumber})
    .Select(x => x.First())
    .ToList();
var qry = (from x in CustomersChecks.CustomersChecksList
          where x.RoutingNumber == routingnumber &&
          x.BankAccountNumber == bankAccountNumber &&
          x.Branch > 0 &&
          x.AccountNumber > 0
          orderby x.Name
          select x).GroupBy(x => new { x.Branch, x.AccountNumber})
                   .Select(x => x.First())
                   .ToList();
或者通过将group by清除到exist查询语法中来执行以下操作

var qry = (from x in CustomersChecks.CustomersChecksList
          where x.RoutingNumber == routingnumber &&
          x.BankAccountNumber == bankAccountNumber &&
          x.Branch > 0 &&
          x.AccountNumber > 0
          orderby x.Name
          group x by new { x.Branch, x.AccountNumber} into grp
          select grp.First()).ToList();

快速而肮脏的解决方案就是将
GroupBy
链添加到第一个查询的末尾

var qry = (from x in CustomersChecks.CustomersChecksList
          where x.RoutingNumber == routingnumber &&
          x.BankAccountNumber == bankAccountNumber &&
          x.Branch > 0 &&
          x.AccountNumber > 0
          orderby x.Name
          select x).GroupBy(x => new { x.Branch, x.AccountNumber})
                   .Select(x => x.First())
                   .ToList();
或者通过将group by清除到exist查询语法中来执行以下操作

var qry = (from x in CustomersChecks.CustomersChecksList
          where x.RoutingNumber == routingnumber &&
          x.BankAccountNumber == bankAccountNumber &&
          x.Branch > 0 &&
          x.AccountNumber > 0
          orderby x.Name
          group x by new { x.Branch, x.AccountNumber} into grp
          select grp.First()).ToList();


你有没有尝试过简单地将两者链接起来,而不是先做一个收费表,然后再做groupby?是的,它们可以结合起来。只需将
.ToList
替换为
.GroupBy…
等。在旁注中,我建议坚持使用一种或另一种语法,而不是混合使用。好的,让我试试ty@mason是啊,我对第二种语法还不够熟悉。我在网上找到了代码,并试图将其合并到中。另一个选项是将group by添加到第一个查询的查询语法中。您是否尝试过简单地将两者链接起来,而不是先做一个tolist,然后再做group by?是的,它们可以合并。只需将
.ToList
替换为
.GroupBy…
等。在旁注中,我建议坚持使用一种或另一种语法,而不是混合使用。好的,让我试试ty@mason是的,我对第二种语法不够熟悉。我在网上找到了代码,并试图将其合并到中。另一个选项是将group by添加到第一个查询的查询语法中。太棒了!这就是我想要的,我会更了解的。太好了@我刚刚修复了第二个查询中的一个问题。这有助于我更好地理解这个组是如何工作的。太好了!令人惊叹的!这就是我想要的,我会更了解的。太好了@我刚刚修复了第二个查询中的一个问题。这有助于我更好地理解这个组是如何工作的。太好了!实际上,在
Groupby
之前需要
OrderBy
,因为它将影响
首先返回的内容。感谢您的输入!实际上,在
Groupby
之前需要
OrderBy
,因为它将影响
首先返回的内容。感谢您的输入!