3 回答

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
不幸的是,你不能。有多種選擇。使用dynamic或返回一個(gè)對(duì)象。例如。例如IEnumerable<object>,IList<object>。或者,您可以使用 ProductName 和 UnitPrice 作為 poco 創(chuàng)建一個(gè) Product 模型。
編輯:
這個(gè)很hacky,但可以使用。
void GetObject<T>(object anonymousObject, T cast)
{
return (T) anonymousObject;
}
在您的模型上,您可以這樣調(diào)用:
object linqResult;
// retrieve linqResult data;
....
var obj = GetObject(linqResult, new { ProductName = "Honda", UnitPrice = 20.0 };
This variable can be accessed as
Console.WriteLine(obj.ProductName);

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以聲明要使用的自定義類(lèi)型而不是匿名類(lèi)型:
public class ProductPrice
{
public string Name { get; set; }
public decimal Price { get; set; }
}
然后LinqResult聲明為
IEnumarable<ProductPrice> LinqResult;
你把它select改成
select new ProductPrice { Name = Products.Product name, Price = Products.UnitPrice };

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
如果這真的是你的全部行動(dòng),那么你就不需要這樣做。只需將 替換LinqResult =
為return
。
但是如果你真的需要弄清楚類(lèi)型,我通常會(huì)臨時(shí)聲明我設(shè)置它的變量:
var LinqResult = from ...
然后,在 Visual Studio 中,將光標(biāo)懸停在變量名上,它會(huì)告訴我類(lèi)型。然后我更改代碼并使用類(lèi)型聲明變量。
在這種特定情況下,它將最終成為IEnumerable
匿名類(lèi)型,我認(rèn)為您實(shí)際上無(wú)法聲明,至少不能以直接的方式聲明。這里有一些關(guān)于它的討論。
- 3 回答
- 0 關(guān)注
- 173 瀏覽
添加回答
舉報(bào)