Il seguente codice funziona:Lista Casting <x> to List <y>
List<JsonStock> stock = new List<JsonStock>();
foreach(tblStock item in repository.Single(id).tblStocks)
stock.Add((JsonStock) item);
Così, naturalmente, si potrebbe pensare che questo codice dovrebbe funzionare anche:
List<JsonStock> stock = repository.Single(id).tblStocks.Cast<JsonStock>().ToList()
ma ho l'errore di Invalid cast operation
- Qualcuno sai perché potrebbe accadere?
UPDATE
tblStocks è una lista di LINQ to SQL oggetto, tblStock.
JsonStock è una versione semplificata della classe tblStock e viene restituita a una pagina Web come oggetto JSON.
Quanto segue operatore è stato costruito per fare il casting:
public partial class tblStock{
public static explicit operator JsonStock(tblStock stock){
JsonStock item = new JsonStock
{
boxes = stock.boxes,
boxtype = stock.tblBoxType.name,
boxtype_id = stock.boxtype_id,
grade = stock.grade,
packrate = stock.packrate,
weight = stock.weight
};
return item;
}
}
come è definito il tipo di 'tblStocks'? –
Solo un'idea, non sono sicuro di questo: 'repository.Single (id) .tblStocks' restituisce un array o un elenco di' JsonStock', quindi quando provi a lanciare come 'JsonStock' si lamenta ... – Marco
@Marco - no non dovrebbe lamentarsi. –