亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

每天進步一點點——在Linq結果中增加項

發布時間:2020-07-04 02:02:08 來源:網絡 閱讀:503 作者:bigman_ren 欄目:編程語言
   Linq已經出現在.net中好久了,但是卻一直沒有用過,所以也沒有過深入的學習。換了家新單位,項目中卻大量的使用了Linq,時不時的會遇到個障礙。在這里記錄下,算是一個積累,也希望能給遇到同樣問題的同學一點兒幫助。

   今天遇到的問題是這樣的,我需要把一個枚舉綁定到View(項目使用了ASP.NET MVC框架)上的下拉列表控件。

   

   為了說明這個問題,先準備了一段代碼,聲明一個枚舉,用來在頁面上進行綁定

using System.ComponentModel;
namespace MvcApplication1.Views.Home
{
    enum EnumExample
    {
        [Description("a")]
        a = 1,
        [Description("b")]
        b = 2,
        [Description("c")]
        c = 3,
    }
}

   其實只是綁定這個枚舉,還是挺簡單的,首先向動態字典ViewBag里添加數據

ViewBag.EnumExampleData = from EnumExample p in Enum.GetValues(typeof(EnumExample))
                                      select new SelectListItem
                                      {
                                          Text = p.ToString(),
                                          Value = Convert.ToInt32(p).ToString()
                                      };

   然后在頁面上用

@Html.DropDownListFor(p=>p.EnumExample,(IEnumerable<SelectListItem>)ViewBag.EnumExampleData)

就可以生成一個下拉列表控件了


   但是這跟實際項目中的要求還稍有點兒差距,一般我們以枚舉作為狀態值或者屬性值時,進行某些操作時,比如查詢,有可能需要這個值為空(查所有狀態),所以我們還需要在下拉控件中增加一個“請選擇”或者“所有值”的項。

   當然實現的方式會有很多種,前臺直接使用JavaScript來添加,或者先維護一個包含枚舉項值得列表,再向列表中添加一個“all”的項,等等等等。但我今天就是想在給ViewBag.EnumExampleData賦值的時候一次性的就實現這個需求。由于對Linq真的不是太熟,琢磨出下面這么一種方法,給大家參考

ViewBag.EnumExampleData = (from q in new List<SelectListItem> { new SelectListItem { Text = "all", Value = "all" } }
                           select q)
                           .Concat(from EnumExample p in Enum.GetValues(typeof(EnumExample))
                                   orderby p
                                   select new SelectListItem
                                   {
                                       Text = p.ToString(),
                                       Value = Convert.ToInt32(p).ToString()
                                   });

   方法不算聰明,就是用了一下Concat。如果大家有其他的方式也可以交流一下哈。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丰台区| 广昌县| 静乐县| 无锡市| 大关县| 常宁市| 巴东县| 健康| 易门县| 遂平县| 滨海县| 安平县| 临武县| 西盟| 苍山县| 彩票| 神池县| 新建县| 拉孜县| 新民市| 卫辉市| 横山县| 阿瓦提县| 高碑店市| 义乌市| 苏州市| 交城县| 宝清县| 英吉沙县| 岳普湖县| 沽源县| 东丽区| 宝鸡市| 通许县| 鄂温| 罗江县| 正阳县| 高淳县| 荃湾区| 南部县| 永吉县|