2011-05-09 13 views
1

我有下面的類:如何更改IQueryable中的項目<T>?

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

和下面的列表:

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

我想改變的列表,其中myClass.c =「小貓」的第一個項目;

給myClass的另一個實例可以叫他newInstance;

我不想做k = bla.first(x => xc ==「kitten」) 然後將newInstance中的字段逐一複製到k,我想要「bla」列表引用到newInstance,不更改k ..

我該如何實現它?

+4

'名單'沒有實現IQueryable的'' - 你能提出一個簡短但完整的例子,這將彙編? – 2011-05-09 08:50:18

+0

私有靜態的IQueryable fakeProducts =新名單 新產品{名稱= 「足球」,價格= 25}, 新產品{名稱= 「衝浪板」,價格= 179}, 新產品{名稱=「跑鞋「,Price = 95} } .AsQueryable(); – OopsUser 2011-05-09 08:56:55

+0

@OopsUser:好的,你打電話給AsQueryable ......有什麼理由這樣做?爲什麼要將IQueryable融入到混合中? – 2011-05-09 08:59:59

回答

1

您可以使用下面的迭代器要做到這一點:

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; 
    } 
} 
相關問題