在 LINQ 中按特定列分组 [重复]

Posted

技术标签:

【中文标题】在 LINQ 中按特定列分组 [重复]【英文标题】:Group By in LINQ with a particular column [duplicate] 【发布时间】:2016-12-10 02:04:11 【问题描述】:

我希望我的数据在 javascript 中,以便它为每个基金创建数组,并且在这些数组中应该有所有日期和金额字段,如

基金名称1 日期金额 日期金额 日期金额

基金名称2 日期金额 日期金额 日期金额

或者我可以将所有数据都扔到 javascript 中,然后使用 javascript 执行此操作吗?如果是,那么如何?

【问题讨论】:

你能澄清你的问题吗?这很难理解。 您应该查阅GroupBy 文档。你问的是一个相当基本的分组。 我在 CSharp 级别拥有此数据,我想将其与 FundName 或 Fund_ID 分组,这样 FundName 只出现一次,并且与该 FundName 相关的所有日期和金额字段都显示在其中 【参考方案1】:

你可以在 C# 中做到这一点。由于每个Fund_ID 都有一个唯一的Fund_Name,因此按两列分组是安全的:

var grouped = (from f in data
              group f by new  F.Fund_ID, F.Fund_Name  into grouping
              select new Class1()
              
                  Fund_ID = grouping.Key.Fund_ID,
                  Fund_Name = grouping.Key.Fund_Name,
                  Details = grouping.Select(x=> new Class2()
                                      Amount = x.Amount, Date = x.Dated ).ToList()
              ).ToList();

假设你有类:

public class Class1

    public string Fund_ID  get; set; 
    public string Fund_Name  get; set; 
    public List<Class2> Details  get; set; 


public class Class2

    public string Date  get; set; 
    public string Amount  get; set; 

【讨论】:

是否可以消除“详细信息”? @MaazKhan47 你不想要每个Fund_ID 的金额和日期吗? 好的,知道了。那么在模型中的详细信息应该列出吗?哪种数据类型的列表? @MaazKhan47 它是在此处现场创建的匿名类型(谷歌以了解更多信息)。您可以创建一个类,但由于您将其传递给 JavaScript,因此他会关心创建一个类:) 如果你能帮助我匿名输入。如何在model中声明ir,然后在Controller中如何使用?

以上是关于在 LINQ 中按特定列分组 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在python中按特定年份对数据进行分组

在 LINQ 中按 2 个属性分组

LINQ:在日期时间字段中按月和年分组

在熊猫中按多个条件分组[重复]

在 SQL/Impala 中按特定的分钟数对日期时间进行分组

使用linq在mvc5中按外键表分组表