如何迭代并更新IEnumerable的每个元素

时间:2013-04-12 13:04:43

标签: c# asp.net-mvc-3 ienumerable

我有一个由SqlQuery调用填充的IEnumerable对象,我想迭代它并更新其类型类成员。

我的示例代码:

public class MyClass
{
    public string id { get; set; }
    public string data { get; set; }
}

...

public JsonResult GetMyClass(...)
{
    IEnumerable<MyClass> oMyClass = db.Database.SqlQuery<MyClass>("SELECT ...");

    // Here I want to iterate through the oMyClass object updating
    // the "data" member before returning it as a Json

    return Json(oMyClass, JsonRequestBehavior.AllowGet);
}

似乎没有一种很好的方法可以做到这一点,特别是如果一个人也想要更新对象而不只是从中读取它。

3 个答案:

答案 0 :(得分:7)

使用foreach。这就是它的用途:

foreach(var item in oMyClass)
{
    item.Property = newValue;
}

答案 1 :(得分:0)

public JsonResult GetMyClass(...)
{
    IEnumerable<MyClass> oMyClass = db.Database.SqlQuery<MyClass>("SELECT ...");

    foreach (var o in oMyClass)
    {
        // do somethig with o
    }

    return Json(oMyClass, JsonRequestBehavior.AllowGet);
}

答案 2 :(得分:-1)

IEnumerable<MyClass> oMyClass = db.Database.SqlQuery<MyClass>("SELECT ...").ToList();
oMyClass.ForEach(i => i.data = somevalue);