加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Linq的Set操作

发布时间:2020-12-12 15:50:03 所属栏目:MsSql教程 来源:网络整理
导读:?Linq 的Set 操作.... 共4个操作.Distinct、Union、Intersect、Except. Distinct 下图演示 Enumerable . Distinct 方法对字符序列的行为。返回的序列包含输入序列的唯一元素。 Except 下图演示 Enumerable . Except 的行为。返回的序列只包含位于第一个输入
?Linq 的Set 操作....
共4个操作.Distinct、Union、Intersect、Except.

Distinct

下图演示 Enumerable.Distinct 方法对字符序列的行为。返回的序列包含输入序列的唯一元素。

Except

下图演示 Enumerable.Except 的行为。返回的序列只包含位于第一个输入序列但不位于第二个输入序列的元素。

Intersect

下图演示 Enumerable.Intersect 的行为。返回的序列包含两个输入序列共有的元素。

Union

下图演示对两个字符序列执行的联合操作。返回的序列包含两个输入序列的唯一的元素。


简单实例:
  1. ?#region?Set?Operator
  2. ????????/*?The?Distinct原型
  3. ?????????*?
  4. ?????????*?功能:去掉重复的元素
  5. ?????????*?与SqlServer中Distinct关键字一样
  6. ?????????*?
  7. ?????????*???public?static?IEnumerable<T>?Distinct<T>(
  8. ?????????*???this?IEnumerable<T>?source);
  9. ?????????*??
  10. ?????????*/
  11. ????????static?void?DistinctOperatorPrototype()
  12. ????????{
  13. ????????????string[]?presidents?=?{?"Adams",?"Arthur",?"Buchanan",?"Bush",?"Carter",?"Cleveland"?};
  14. ????????????Console.WriteLine("presidents?Count:"+presidents.Count());
  15. ????????????IEnumerable<string>?doublePresidents?=?presidents.Concat(presidents);
  16. ????????????Console.WriteLine("?after?Concat?presidents?Count:"?+?doublePresidents.Count());
  17. ????????????IEnumerable<string>?DistinctPresidents?=?doublePresidents.Distinct();
  18. ????????????Console.WriteLine("after?Distinct?presidents?Count:"?+?DistinctPresidents.Count());
  19. ????????}
  20. ????????/*The?Union原型
  21. ?????????*?
  22. ?????????*?功能:将多个集合运算成一个集合,消除重复项
  23. ?????????*?和SqlServer中关键字Union关键字一样.
  24. ?????????*?
  25. ?????????*?public?static?IEnumerable<T>?Union<T>(
  26. ?????????*????this?IEnumerable<T>?first,
  27. ?????????*????IEnumerable<T>?second);
  28. ?????????*??
  29. ?????????*/
  30. ????????static?void?UnionPrototype()
  31. ????????{
  32. ????????????string[]?presidents?=?{?"Adams",?"Cleveland"?};
  33. ????????????Console.WriteLine("presidents?element?count:{0}",?presidents.Count());
  34. ????????????IEnumerable<string>?first?=?presidents.Take(4);//取前4个元素
  35. ????????????IEnumerable<string>?second?=?presidents.Skip(2);//去掉前2个元素
  36. ????????????Console.WriteLine("first?elements?count:{0}",?first.Count());
  37. ????????????Console.WriteLine("second?elements?count:{0}",?second.Count());
  38. ????????????IEnumerable<string>?concat?=?first.Concat(second);
  39. ????????????IEnumerable<string>?union?=?first.Union(second);
  40. ?????????
  41. ????????????Console.WriteLine("after?concat?element?count:{0}",?concat.Count());
  42. ????????????Console.WriteLine("after?union?element?count:{0}",?union.Count());
  43. ????????}
  44. ????????/*Intersect?原型
  45. ?????????*?
  46. ?????????*?功能:取2个集合的交集
  47. ?????????*?
  48. ?????????*?public?static?IEnumerable<T>?Intersect<T>(
  49. ?????????*???this?IEnumerable<T>?first,
  50. ?????????*???IEnumerable<T>?second);
  51. ?????????*
  52. ?????????*/
  53. ????????static?void?IntersectPrototype()
  54. ????????{
  55. ????????????string[]?presidents?=?{?"Adams",?second.Count());
  56. ????????????IEnumerable<string>?concat?=?first.Concat(second);
  57. ????????????IEnumerable<string>?intersect?=?first.Intersect(second);
  58. ????????????Console.WriteLine("after?concat?element?count:{0}",?concat.Count());
  59. ????????????Console.WriteLine("after?intersect?element?count:{0}",?intersect.Count());
  60. ????????}
  61. ????????/*Except原型
  62. ?????????*?
  63. ?????????*?功能:返回的序列只包含位于第一个输入序列但不位于第二个输入序列的元素
  64. ?????????*?
  65. ?????????*?public?static?IEnumerable<T>?Except<T>(
  66. ?????????*???this?IEnumerable<T>?first,
  67. ?????????*???IEnumerable<T>?second);
  68. ?????????*?
  69. ?????????*?
  70. ?????????*?
  71. ?????????*/
  72. ????????static?void?ExceptPrototype()
  73. ????????{
  74. ????????????string[]?presidents?=?{?"Adams",?"Cleveland"?};
  75. ????????????Console.WriteLine("presidents?element?count:{0}",?presidents.Count());
  76. ????????????IEnumerable<string>?first?=?presidents.Take(4);//取前4个元素
  77. ????????????Console.WriteLine("first?elements?count:{0}",?first.Count());
  78. ????????????IEnumerable<string>?except?=?presidents.Except(first);
  79. ????????????Console.WriteLine("after?except?element?count:{0}",?except.Count());
  80. ????????????foreach?(string?item?in?except)
  81. ????????????{
  82. ????????????????Console.WriteLine(item);
  83. ????????????}
  84. ????????}
  85. ????????#endregion

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读