我是 C# 新手。我正在寻找这个没有任何运气。 假设我将数据库结果转换为列表。类似下面的内容
var schedules = db.Schedules.Where(s => s.RequestId == id).ToList();
现在我需要向这个列表中添加一个新元素。不是列表项,而是列表中存在的每个列表项的属性。
例如在 php 中,如果它是一个多维数组,我可以使用 foreach 循环遍历数组,它很简单,如 $arrayList['new_key'] = "new_value";
如何在 C# 中将这样的属性添加到上面的 schedules
列表中?更准确地说; Schedule
是一个数据集。新属性也是我想从不同数据集的另一个属性中获取的东西。
非常感谢帮助。
编辑: 现在我意识到我真正需要的是什么。我需要进行左外连接以连接 Schedule 和其他模型。我提出了一个新问题: How to create a simple left outer join in lambda expression in EF ASP.NET MVC5
最佳答案
“计划”(或返回的任何对象集)需要添加属性1。因此,要么将属性添加到对象,要么使用原始对象的属性(再加上一个)创建一个新对象并选择它。例如
class Schedule2 : Schedule
{
public String NewProperty { get; set; }
public Schedule2(Schedule schedule)
{
// assign original properties here from "Schedule". e.g.
base.RequestId = schedule.RequestId;
}
}
然后:
var schedules = db.Schedules
.Where(x => x.RequestId == id)
.Select(x => new Schedule2(x))
.ToList();
1 尽管 DynamicObject
,但我认为在这种情况下不合适。
关于c# - 如何将新属性添加到 C# 列表中的每个列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25434011/