как изменить элемент в IQueryable <T>? - PullRequest
1 голос
/ 09 мая 2011

У меня есть следующий класс:

class myClass { string b; string c; string d; }

и следующий список:

IQueryable<myClass> bla = new list<myClass>();

я хочу изменить первый элемент в списке, где myClass.c = "котенок";

Для другого экземпляра myClass давайте назовем его newInstance;

я не хочу делать k = bla.first (x => x.c == "котенок") а затем скопируйте одно за другим поля из newInstance в k, я хочу, чтобы список «bla» ссылался на newInstance, не меняя k ..

как мне этого добиться?

1 Ответ

1 голос
/ 09 мая 2011

Вы можете использовать ниже итератор, чтобы сделать это:

public static IEnumerable<myClass> GetChanged(IEnumerable<myClass> data)
{
    bool found = false;
    foreach(myClass c in data)
    {
       if(found == false && c.c=="kitten")
       {
           found = true;
           yield return new myClass() ; //new object
       }
       else
           yield return c;
    }
}
...