2013-04-12 2 views
0

У меня есть объект 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); 
} 

Там, кажется, не быть хорошим способом сделать это, EXPECIALLY, если один и хотите, чтобы обновить объект, а не только чтение из него.

ответ

7

foreach. Вот что он там:

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

Извините, что все, что я был неправ, но спасибо @Gray для объяснения – user1740381

+0

я думал то же самое, поэтому я подумал, что это должно было быть сделано по-разному. Зная, что foreach делает это здорово. – Espen

0
IEnumerable<MyClass> oMyClass = db.Database.SqlQuery<MyClass>("SELECT ...").ToList(); 
oMyClass.ForEach(i => i.data = somevalue); 
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); 
} 
Смежные вопросы