c# - 如何将新属性添加到 C# 列表中的每个列表项

标签 c# asp.net list asp.net-mvc-5

我是 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/

相关文章:

python - 如何在 Python 中对集合运行操作并收集结果?

c# - 在 VB.NET 中创建可从 C# 使用的索引器

c# - ASP.NET C# Bool 类型转换

Android:如何更新列表而不使列表跳转到顶部

c# - 对象或值作为我的服务/数据层的参数

javascript - 我这样使用 asp mvc Controller 和 javascript 的方法是否正确?

python - 删除多个元素而不更新到最后

c# - x => x + 1和x => x + = 1之间有区别吗?

c# - 从 BindingListView 获取筛选列表

c# - 关闭表单后进程没有关闭