日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Linq标准查询运算及用法

發布時間:2024/4/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linq标准查询运算及用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linq中的查詢運算符:

  • Where,???????????????????????????????????? ?獲得只滿足條件的元素
  • Select,SelectMany,????????????????????? 針對一個(多個)查詢對象,將查詢的結果轉換成需要的數據形式
  • Take,TakeWhile,????????????????????????? 獲得序列中指定位置之前(Take包括此位置,TakeWhile不包括)的元素
  • Skip,SkipWhile,?????????????????????????? 獲得序列中指定位置之后(Skip不包括此位置,SkipWhile包括此位置)的元素
  • OrderBy,OrderByDescending,??????? 按升序(降序)方式對原有數據進行排序
  • ThenBy,ThenByDescending,????????? 按升序(降序)方式對原有數據進行次要排序
  • Reverse,???????????????????????????????????? 將原有的數據顛倒排序
  • GroupBy,??????????????????????????????????? 根據分組條件將數據放入不同的組中
  • Distinct????????????????????????????????????? 去除數據中重復的值
  • Union,??????????????????????????????????????? 返回二個集合中內唯一的元素,即并集
  • Intersect????????????????????????????????????返回同時出現在二個集合中的元素,即交集
  • Except?????????????????????????????????????? 返回一個集合中有另一個集合中沒有的元素,即差集
  • ToArray,ToList,ToDictionary,??????? 將集合轉換成數組,泛型列表,字典
  • OfType??????????????????????????????????????根據指定類型篩選IEnumerable的元素
  • First,FirstOfDefault,???????????????????? 返回集合中第一個元素或滿足條件的第一個元素(FirstOfDefault沒有滿足條件的返回默認的值)
  • ElementAt,ElementAtOrDefault???? 返回集合中指定位置的元素(ElementAtOrDefault索引超出范圍則返回默認值)
  • Range,????????????????????????????????????? 生成有關數字的集合
  • Repeat????????????????????????????????????? 生成一個相關重復值的集合
  • Any,????????????????????????????????????????? 判斷序列中是否有元素滿足條件
  • All,??????????????????????????????????????????? 判斷序列中是否所有元素都滿足條件
  • Contains??????????????????????????????????? 判斷序列中是否包含指定元素
  • Average,Count,Max,Min,Sum??????? 對集合取平均值,計數,取最大值,最小值,總和
  • View Code 1 //where條件過濾
    2 ? static void WhereData()
    3 {
    4 var db = new NorthwindDataContext();
    5 var stockBase = from b in db.BaseData2s where b.ID > 10683 select new { b.ID, b.ChiName };
    6 foreach (var item in stockBase)
    7 {
    8 Console.WriteLine(item);
    9 }
    10 Console.WriteLine();
    11 string[] nums = { "fdfd", "fdfd", "32", "fsdffsf", "fdf", "fdf", "4324342", "fddffa" };
    12 //過濾字符長度小于索引的值
    13 ? var shortnum = nums.Where((num, index) => num.Length < index);
    14 foreach (var item in shortnum)
    15 {
    16 Console.WriteLine(item);
    17 }
    18 }
    19 //分區運算符Take,Skip,TakeWhile,SkipWhile
    20 static void TakeData()
    21 {
    22 var db = new NorthwindDataContext();
    23 var based = from b in db.BaseData2s select new { b.ID, b.EngName };
    24 //得到前三個的值
    25 var first3 = based.Take(3);
    26 foreach (var item in first3)
    27 {
    28 Console.WriteLine("first3:{0}\t{1}", item.ID, item.EngName);
    29 }
    30 Console.WriteLine();
    31 //得到第三位后面的值
    32 var last = based.Skip(3);
    33 foreach (var item in last)
    34 {
    35 Console.WriteLine("last:{0}\t{1}", item.ID, item.EngName);
    36 }
    37 Console.WriteLine();
    38 int[] numbers = { 5, 4, 8, 9, 3, 0, 6, 7, 2, 33 };
    39 //得到小于9前面的值
    40 var firstLess6 = numbers.TakeWhile(n => n < 9);
    41 //得到元素值是否不是3的倍數,是則返回當前位置后的元素(包括當前元素)
    42 var butfirst2 = numbers.SkipWhile(n => n % 3 != 0);
    43 foreach (var item in firstLess6)
    44 {
    45 Console.WriteLine("first6:{0}", item);
    46 }
    47 Console.WriteLine();
    48 foreach (var item in butfirst2)
    49 {
    50 Console.WriteLine("2:{0}", item);
    51 }
    52 }
    53
    54 //使用集合運算符Union并集,Intersect交集,Except差集,Distinct移除重復值
    55 static void Linq1()
    56 {
    57 int[] numbers = { 2, 2, 3, 51, 51, 5, 5 };
    58 var distinctnumbers = numbers.Distinct();
    59 foreach (var item in distinctnumbers)
    60 {
    61 Console.WriteLine("distince:{0}", item);
    62 }
    63 Console.WriteLine();
    64
    65 int[] numberA = { 0, 2, 4, 5, 6, 8, 9 };
    66 int[] numberB = { 1, 3, 4, 5, 7, 8, 11 };
    67 distinctnumbers = numberA.Union(numberB);
    68
    69 foreach (var item in distinctnumbers)
    70 {
    71 Console.WriteLine("Union:{0}", item);
    72 }
    73 Console.WriteLine();
    74 var intersectnumber = numberA.Intersect(numberB);
    75 foreach (var item in intersectnumber)
    76 {
    77 Console.WriteLine("Intersect:{0}", item);
    78 }
    79 Console.WriteLine();
    80 var Exceptnumber = numberB.Except(numberA);
    81 foreach (var item in Exceptnumber)
    82 {
    83 Console.WriteLine("Except:{0}", item);
    84 }
    85 Console.WriteLine();
    86 }
    87
    88 //使用分組運算符
    89 static void LinqGroupBy()
    90 {
    91 string[] words = { "blueberry", "chimpanzee", "abacus", "banana", "apple", "cheese" };
    92 //以字符中的第一個字母分組
    93 var wordGroups = from w in words group w by w[0] into g select new { FirstLetter = g.Key, Words = g };
    94 foreach (var item in wordGroups)
    95 {
    96 Console.WriteLine("words that start with letter '{0}':", item.FirstLetter);
    97 foreach (var w in item.Words)
    98 {
    99 Console.WriteLine(w);
    100 }
    101 }
    102
    103 var wordgroup2 = words.GroupBy(a => a[0]);
    104 foreach (var item in wordgroup2)
    105 {
    106 Console.WriteLine("words that start with letter '{0}':", item.Key);
    107 foreach (var w in item)
    108 {
    109 Console.WriteLine(w);
    110 }
    111 }
    112 }
    113
    114 //元素運算符First,FirstOfDefault
    115 static void LinqFirst()
    116 {
    117 int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
    118 var number = (from n in numbers where n >= 6 select n).First();
    119 Console.WriteLine("First:{0}", number);
    120 //查詢第一個為2的倍數
    121 int evenNum = numbers.First(n => n % 2 == 0);
    122 Console.WriteLine();
    123 Console.WriteLine(evenNum);
    124
    125 int[] numbers2 = { };
    126 int firstDefault = numbers2.FirstOrDefault();
    127 Console.WriteLine("firstDefault:{0}", firstDefault);
    128 }
    129
    130 //限定運算符any,all,contains
    131 static void LinqAny()
    132 {
    133 string[] words = { "blueberry", "chimpanzee", "abacus", "banana" };
    134 //判斷是否有字符包含'ba'元素
    135 bool afterBa = words.Any(b => b.Contains("ba"));
    136 Console.WriteLine(afterBa);
    137
    138 //判斷是否所有字符都包含'ba'元素
    139 bool afterAll = words.All(b => b.Contains("ba"));
    140 Console.WriteLine(afterAll);
    141
    142 }

    轉載于:https://www.cnblogs.com/JeJeXu/archive/2011/05/16/2047847.html

    總結

    以上是生活随笔為你收集整理的Linq标准查询运算及用法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。