如何根据c#中的值拆分数据

Posted

技术标签:

【中文标题】如何根据c#中的值拆分数据【英文标题】:How to split data depending on the values in c# 【发布时间】:2021-11-30 02:15:52 【问题描述】:

在我的项目(Angular 和 .net)中,有一个功能可以下载特定学生所学课程的详细信息。下载报告后,报告将显示在 Excel 表中,如下表所示。

在我的提供程序类的后端代码(web api)中,此下载的相关方法如下。

public async Task<students> GetReport(string sId)

    var response = await dbAccess.GetCoursesForReport(sId);

    return studentReportMapper.Map(response);

我收到的回复是上表中的值。

我想知道的是如何修改上述方法以拆分课程取决于 完成的级别(级别1,级别2,级别3)。因为我想下载报告时,根据已完成的级别在单独的 Excel 工作表中显示详细信息。(在上述情况下,三个不同的工作表分别命名为 level1、level2 和 level3)现在报告正在单个工作表中下载.

【问题讨论】:

你能改一下这个问题吗?我不确定你在问什么?您可以传递一个参数,以按完成的级别进行过滤。或者,您可以返回按已完成级别分组的学生列表。也可以提供students的型号吗? @Greg 我已经实现了模型。报告在单个excel表中下载为上表。该功能正常工作。我想要做的是修改上面提到的功能从已完成的级别拆分。(因为如果学生只是单击下载按钮,它将按上表下载,如果用户单击拆分报告版本的复选框,则必须根据每个报告在 3 个工作表中下载报告级别) GroupBy 已完成关卡? 类似dotnetfiddle.net/XZWphf? @rissa dotnetfiddle.net/AVfnQO 简化了一些事情 【参考方案1】:

您可以使用 LINQ 轻松做到这一点

var levelOne = result.Where(x => x.Level == 1).ToList();
var levelTwo = result.Where(x => x.Level == 2).ToList();
var levelThree = result.Where(x => x.Level == 3).ToList();

现在,您必须使用列表构建您的响应,仅此而已。

【讨论】:

以上是关于如何根据c#中的值拆分数据的主要内容,如果未能解决你的问题,请参考以下文章

根据单列中的值拆分大文件(AWK)

如何使用 Razor 视图引擎在 JavaScript 中正确混合 C# 代码。我希望根据 ViewBag 中的值包含或省略 Javascript

如何根据多列的值拆分数据框

如何根据原始数据帧中的总行数将数据帧拆分为两个数据帧

如何将 map_keys() 中的值拆分为 PySpark 中的多列

如何根据另一个拆分熊猫系列