91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

每天進步一點點——在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

莱阳市| 安西县| 河北区| 武功县| 长宁县| 同德县| 突泉县| 镇赉县| 台江县| 达孜县| 肇州县| 都安| 韶山市| 额敏县| 江安县| 阿鲁科尔沁旗| 甘谷县| 赤峰市| 平江县| 罗田县| 道孚县| 伊吾县| 长阳| 永靖县| 平利县| 邯郸市| 和硕县| 孝昌县| 鲁山县| 宁远县| 成武县| 福贡县| 丹寨县| 资兴市| 墨江| 尚义县| 甘谷县| 潮安县| 嵩明县| 南召县| 横山县|