You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将数据扁平化为基于SubmissionRequestFiles数量的视图模型列表

需求说明

需要将现有数据扁平化为视图模型列表,视图模型的数量需与SubmissionRequestFiles的数量完全一致。例如:若存在2个SubmissionRequestFiles实例,则必须生成2个SubmissionRequestViewModel实例。

当前错误实现

SubmissionRequestViewModel vm = new SubmissionRequestViewModel();
vm.SubmissionId = sr.SubmissionId;

foreach (var file in sr.SubmissionRequestFiles)
{
  vm.SubmissionRequestFilesName = file.SubmissionRequestFilesName;
}

这段代码仅创建1个SubmissionRequestViewModel实例,循环过程中会反复覆盖SubmissionRequestFilesName的值,最终仅保留最后一个文件的名称,完全无法满足生成对应数量视图模型的需求。

正确实现方式

常规循环写法

通过遍历SubmissionRequestFiles,为每个文件创建独立的视图模型实例,再将实例收集为列表:

List<SubmissionRequestViewModel> vmList = new List<SubmissionRequestViewModel>();

foreach (var file in sr.SubmissionRequestFiles)
{
    SubmissionRequestViewModel vm = new SubmissionRequestViewModel();
    vm.SubmissionId = sr.SubmissionId;
    vm.SubmissionRequestFilesName = file.SubmissionRequestFilesName;
    vmList.Add(vm);
}

LINQ简化写法(需引用System.Linq)

利用LINQ的Select方法快速映射生成视图模型列表:

using System.Linq;

// ...

List<SubmissionRequestViewModel> vmList = sr.SubmissionRequestFiles
    .Select(file => new SubmissionRequestViewModel
    {
        SubmissionId = sr.SubmissionId,
        SubmissionRequestFilesName = file.SubmissionRequestFilesName
    })
    .ToList();

内容的提问来源于stack exchange,提问作者Jefferson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 15:17:09