<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          .NET 現(xiàn)代化動(dòng)態(tài) LINQ 庫(kù) Gridify

          共 1660字,需瀏覽 4分鐘

           ·

          2022-01-26 11:06




          動(dòng)態(tài) LINQ




          大家好,我是等天黑, 這次繼續(xù)介紹開(kāi)源項(xiàng)目,Gridify 是一個(gè)現(xiàn)代化動(dòng)態(tài) LINQ 庫(kù),它以最簡(jiǎn)單的方式將您的字符串轉(zhuǎn)換為 LINQ 查詢,并且有出色的性能。它還提供了一種使用基于文本的數(shù)據(jù)應(yīng)用過(guò)濾、排序和分頁(yè)的簡(jiǎn)單方法,您還可以很方便的和 Entity framework 結(jié)合使用。



          https://alirezanet.github.io/Gridify/


          這有什么用呢?LINQ 查詢通常是在程序中硬編碼的, 而字符串可以來(lái)自于數(shù)據(jù)庫(kù),Http 請(qǐng)求等等, 可以在合適的場(chǎng)景中轉(zhuǎn)換成LINQ查詢,也就是動(dòng)態(tài) LINQ。



          使用示例




          讓我們看看下面幾個(gè)示例。


          首先通過(guò) Nuget 安裝 Gridify, 然后修改代碼如下


           public class Program    {        static async Task Main(string[] args)        {            List<Person> people = new List<Person>() {                 new Person(18,"Lee"),                 new Person(18,"James"),                 new Person(30,"Mark")             };         }    }     public class Person    {        public Person(int age, string name)        {            Age = age;            Name = name;        }        public int Age { get; set; }        public string Name { get; set; }     }


          先看一個(gè)簡(jiǎn)單的, 此時(shí) p1 和 p2 是相等的


          // 字符串var p1 = people.AsQueryable().ApplyFiltering("Age=18").ToList();//等同于 LINQvar p2 = people.Where(x => x.Age==18).ToList(); 



          OR


          people.AsQueryable().ApplyFiltering("Name=Lee | Name=Mark").ToList();people.Where(x => x.Name=="Lee"|| x.Name=="Mark").ToList();



          AND



          people.AsQueryable().ApplyFiltering("Age=18 , Name=James").ToList();people.Where(x => x.Age==18&& x.Name=="James").ToList();



          模糊查詢


          people.AsQueryable().ApplyFiltering("Name=*a").ToList();people.Where(x => x.Name.Contains("a")).ToList();




          排序



          people.AsQueryable().ApplyOrdering("Age desc,Name desc").ToList();;people.OrderByDescending(x => x.Age).ThenByDescending(x => x.Name).ToList();



          性能



          Gridify 是實(shí)現(xiàn)原理是, 對(duì)字符串進(jìn)行語(yǔ)法解析,然后轉(zhuǎn)換成表達(dá)式, 如您所見(jiàn),Gridify 的結(jié)果和原生 linq 最接近。



          希望對(duì)您有用!

          瀏覽 34
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  看老女人操逼视频 | 国产精品久久mv | 又色又爽又黄18 网站 | 日韩艹| 成人免费视频黄色 |