【问题标题】:Group data with SQL, Lamda or LINQ使用 SQL、Lambda 或 LINQ 对数据进行分组
【发布时间】:2019-09-27 03:47:06
【问题描述】:

我想问一下是否可以使用 SQL 从数据库中获取数据或使用 Lambda 或 Linq 更新 List。

数据库或列表中的数据

  CompanyName         MainName       ChildName
  --------------------------------------------------
  Company1              ABC           
  Company2                             ABC
  Company3              XWY           
  Company4              TTT           
  Company5                             XWY           
  Company6                             ABC
  Company7                             TTT
  Company8                             TTT           

我需要什么

  CompanyName         MainName       ChildName
  --------------------------------------------------
  Company1              ABC           
  Company2                             ABC
  Company6                             ABC  
  Company4              TTT           
  Company7                             TTT
  Company8                             TTT
  Company3              XYZ            
  Company5                             XYZ

我可以通过循环来做到这一点,但只是想知道有没有人知道没有任何循环。

【问题讨论】:

    标签: c# sql linq lambda


    【解决方案1】:

    你需要有条件的order by

    order by (case when MainName is null then ChildName else MainName end), ChildName;
    

    【讨论】:

    • 谢谢。它正在工作......我把 ChildName 放在最后的 CompanyName 以获得正确的列表。
    • order by $"{MainName}{ChildName}".trim() 应该给出相同的结果
    【解决方案2】:

    在 C# 中,您可以对给定的答案进行替代编写:

    static void Main(string[] args)
    {
      List<Company> companies = new List<Company>();
      companies = companies
        .OrderBy(c => c.MainName == null ? c.ChildName : c.MainName)
        .ToList();
    }
    
    class Company
    {
      public string CompanyName { get; set; }
      public string MainName { get; set; }
      public string ChildName { get; set; }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-05
      • 2010-10-01
      • 1970-01-01
      • 2017-02-15
      • 1970-01-01
      • 2014-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多