如何在不删除项目的情况下将新项目添加到 IEnumerable<model> 列表中


[HttpPost]
public JsonResult AjaxMethod(string[] departments)
{
IEnumerable<Batch> batchList = Enumerable.Empty<Batch>();
try
{
string a;
for (int i = 0; i < departments.Length; i++)
{
a = departments[i];
batchList = batchList.Concat(obj.Batches.Where(x => x.Department_Id == a));
}
return Json(batchList);
}
catch
{
return Json(null);
}
}

我正在向 AjaxMethod(( 发送一个包含两个索引的数组 部门[0]="BSCS" 和部门[1]="BSIT">

我正在使用 concat 方法附加 IEnumerable 列表,当 for 循环第二次运行时,它会覆盖部门[0] 的结果,并将部门 [1] 与部门 [1] 连接起来我想要这个输出:bscs-f13 bscs-f14 bscs-f15 bsit-f13 bsit-f14








bsit-f15

但实际输出是:BSIT-F13
BSIT-F14 BSIT-F15 BSIT-F13

BSIT-F14
BSIT-F15




Linq 函数是纯函数,因此串联为每个循环分配新内存。 您可以简单地迭代departments参数。

batchList = departments.SelectMany(d=>obj.Batches.Where(x => x.Department_Id == d));

相关内容

  • 没有找到相关文章

最新更新