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

C# 如何将新属性添加到C列表中的每个列表项中,c#,asp.net,list,asp.net-mvc-5,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中向上面

我是C级新手。我一直在寻找这个,没有任何运气。 假设我有一个数据库结果转换为列表。类似于下面的内容

var schedules = db.Schedules.Where(s => s.RequestId == id).ToList();
现在我需要在这个列表中添加一个新元素。不是列表项,而是列表中存在的每个列表项的属性

例如,在php中,如果它是一个多维数组,我可以使用foreach循环遍历数组,它很简单,如$arrayList['new_key']=new_value

如何在C中向上面的明细表列表中添加这样的属性?更确切地说;Schedule是一个数据集。新属性也是我想从不同数据集的另一个属性获取的

非常感谢你的帮助

编辑: 现在我意识到我真正需要的是什么。我需要做一个左外连接来连接明细表和其他模型。我提出了一个新问题:

时间表或返回的任何对象集都需要添加属性1。因此,要么将属性添加到对象中,要么使用原始对象的属性再加上一个属性创建一个新对象,然后选择该对象。e、 g

class Schedule2 : Schedule
{
    public String NewProperty { get; set; }

    public Schedule2(Schedule schedule)
    {
        // assign original properties here from "Schedule". e.g.
        base.RequestId = schedule.RequestId;
    }
}
然后:

1尽管如此,但我认为它在这种情况下不合适。

您说过时间表是一个数据集。我由此假设调度是一个带有单个表的System.Data.DataSet实例,或者是System.Data.DataTable的直接实例

向DataTable添加额外属性非常容易。您需要提前做的就是创建一个新的DataColumn并将其添加到DataTable的Columns属性中。大概是这样的:

DataSet ds1 = <whatever method returns the dataset>
DataTable dt1 = ds1.Tables[0];
dt1.Columns.Add("NewCol", typeof(string));

您是指Select?中的Schedule2吗?我们将从其中分配新属性值?可以在.Select中这样做,例如..Selectx=>new Select2x{NewProperty=Foo}虽然OP在他们的问题中提到了foreach,所以我假设他们知道如何填充它而不是添加它;我试试这个。但是有没有一种方法可以将一个属性添加到列表中呢?类似list.Add'newproperty',8?@guitarlass:在c中,不是。它是结构化的,并且每个对象都不是基于像PHP这样的字典数组。我考虑过同样的情况,但考虑到上下文db.Table,我相信OP通常使用dataset。它们还引用Where谓词中的特定属性,这也让我相信它们是一组对象。
DataSet ds1 = <whatever method returns the dataset>
DataTable dt1 = ds1.Tables[0];
dt1.Columns.Add("NewCol", typeof(string));
dt1.Rows[0]["NewCol"] = "a simple string";