第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何創(chuàng)建一個(gè)“全局”變量來(lái)返回 linq 結(jié)果?

如何創(chuàng)建一個(gè)“全局”變量來(lái)返回 linq 結(jié)果?

C#
Cats萌萌 2022-06-12 14:36:57
假設(shè)我的視圖中有一個(gè)下拉列表。不同的選擇將使用不同的 linq 結(jié)果,需要返回視圖。我已經(jīng)完成了查看頁(yè)面。現(xiàn)在在我的控制器上,我有點(diǎn)卡住了。我知道 var 不能用作“全局”變量聲明。但那我該怎么辦呢?這是我的代碼:[HttpPost]    public ActionResult About(string Linq)    {        IEnumerable<NorthwindResult> Linq1;        switch (Linq)        {                            case "Most Expensive":                Linq1 = from Products in northwindEntities.Products                            where                              Products.UnitPrice ==                                (from Products0 in northwindEntities.Products                                 select new                                 {                                     Products0.UnitPrice                                 }).Max(p => p.UnitPrice)                            select new NorthwindResult                            {                                ProductName = Products.ProductName,                                UnitPrice = Products.UnitPrice                            };                break;            case "Above Average":                Linq1 = from Products in northwindEntities.Products                            where                              Products.UnitPrice >                                (from Products0 in northwindEntities.Products                                 select new                                 {                                     Products0.UnitPrice                                 }).Average(p => p.UnitPrice)                            orderby Products.UnitPrice descending                            select new NorthwindResult                            {                                ProductName = Products.ProductName,                                UnitPrice = Products.UnitPrice                            };                break;            default:                break;        }        return Linq1;    }C#林克模型視圖控制器
查看完整描述

3 回答

?
繁華開(kāi)滿(mǎn)天機(jī)

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);


查看完整回答
反對(duì) 回復(fù) 2022-06-12
?
ABOUTYOU

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 };



查看完整回答
反對(duì) 回復(fù) 2022-06-12
?
牧羊人nacy

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)于它的討論。


查看完整回答
反對(duì) 回復(fù) 2022-06-12
  • 3 回答
  • 0 關(guān)注
  • 173 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)