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

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

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

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

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

【问题讨论】:

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

标签: c# linq


【解决方案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中如何使用?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 2011-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多