1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Diagnostics;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8.  
  9. namespace ConsoleApplication2
  10. {
  11.  
  12. class Program
  13. {
  14. public class post
  15. {
  16. public string id { get; set; }
  17. public string name { get; set; }
  18. public int age { get; set; }
  19. public string pd { get; set; }
  20. }
  21. static void Main(string[] args)
  22. {
  23. var product = new List<post>
  24. {
  25. new post { name=""},
  26. new post { name=""},
  27. new post { name=""},
  28. new post { name=""},
  29. };
  30. product.ToList().ForEach(a => a.id = Guid.NewGuid().ToString("N"));//进行遍历赋值
  31.  
  32. var pp = product.ToDictionary(a => a.name, a => a.id); //转成字典
  33. Console.WriteLine(pp.FirstOrDefault().Key + " " + pp.FirstOrDefault().Value);
  34.  
  35. product.Add(new post { name = "", id = Guid.NewGuid().ToString("N") });
  36. var pd = product.ToLookup(a => a.name, a => a.id);//groupby之后转成字典,取不同项
  37. Console.WriteLine(pp.FirstOrDefault().Key + " " + pp.FirstOrDefault().Value);
  38.  
  39. var pro = new List<post>
  40. {
  41. new post { id = Guid.NewGuid().ToString("N"),name="",age=,pd="sad"},
  42. new post { id = Guid.NewGuid().ToString("N"),name="",age=,pd="sad"},
  43. new post { id = Guid.NewGuid().ToString("N"),name="",age=,pd="sad"},
  44. new post {id = Guid.NewGuid().ToString("N"), name="",age=,pd="sad"},
  45. };
  46. var prd = new List<post>
  47. {
  48. new post { id = Guid.NewGuid().ToString("N"),name="",age=,pd="sad"},
  49. new post { id = Guid.NewGuid().ToString("N"),name="",age=,pd="sad"},
  50. new post {id = Guid.NewGuid().ToString("N"), name="",age=,pd="sad"},
  51. new post {id = Guid.NewGuid().ToString("N"), name="",age=,pd="sad"},
  52. };
  53. var dsz = pro.Select(s => new { id = s.age, name = s.name, pd = s.pd });
  54. var dsx = prd.Select(s => new { id = s.age, name = s.name, pd = s.pd });
  55. var dsc = dsz.Except(dsx).Count();
  56. if (dsc > )
  57. Console.WriteLine("修改过");
  58. else
  59. Console.WriteLine("未修改");
  60.  
  61. if (pro.Select(s => new { id = s.age, name = s.name, pd = s.pd }).Except(prd.Select(s => new { id = s.age, name = s.name, pd = s.pd })).Count() > )
  62. Console.WriteLine("修改过");
  63. else
  64. Console.WriteLine("未修改");
  65. Console.WriteLine(dsc);
  66.  
  67. Console.Read();
  68.  
  69. }
  70.  
  71. }
  72.  
  73. }

c# 敏捷2 ForEach ToDictionary ToLookup Except比较的更多相关文章

  1. 挖一挖C#中那些我们不常用的东西之系列(1)——ToDictionary,ToLookup

    这个系列我们看看C#中有哪些我们知道,但是又不知道怎么用,又或者懒得去了解的东西,比如这篇我们要介绍的toDictionary 和ToLookup. 从图中我们看到有四个ToXXX的方法,其中ToAr ...

  2. ToDictionary,ToLookup

    这个系列我们看看C#中有哪些我们知道,但是又不知道怎么用,又或者懒得去了解的东西,比如这篇我们要介绍的toDictionary 和ToLookup. 从图中我们看到有四个ToXXX的方法,其中ToAr ...

  3. 挖一挖C#中那些我们不经常使用的东西之系列(1)——ToDictionary,ToLookup

    这个系列我们看看C#中有哪些我们知道.可是又不知道怎么用.又或者懒得去了解的东西,比方这篇我们要介绍的toDictionary 和ToLookup. 从图中我们看到有四个ToXXX的方法,当中ToAr ...

  4. Linq常用查询运算符

    Linq一共包含五十几个查询运算符,常用的根据类型来区分一共有5类左右,这五类里面一些事在项目查询中经常用到的.不过linq运算符的命名十分规范,基本从字面意思就能猜测出来是干嘛用的,下面我们挑选一些 ...

  5. C#经典系列-键值对

    1.ToDictionary,ToLookup 从图中我们看到有四个ToXXX的方法,其中ToArray和ToList,用的是非常非常多 我们有这样的一个实体 class student { publ ...

  6. 再次理解 C# LINQ

    语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称. 查询表达式(生成表达式) 1.IEnumerable<T> 查询编译为委托.如 source.Where( ...

  7. C#(少用的)

    挖一挖C#中那些我们不常用的东西之系列(1)——ToDictionary,ToLookup 挖一挖C#中那些我们不常用的东西之系列(2)——IsXXX 系列方法 挖一挖C#中那些我们不常用的东西之系列 ...

  8. 23LINQ运算符返回其它类型实例汇总

      IEnumerable<T>返回其它集合类型 ToArray() ToList() ToDictionary() ToLookUp()     返回集合中的元素 □ ElementAt ...

  9. LINQ标准查询操作符(四) —AsEnumerable,Cast,OfType,ToArray,ToDictionary,ToList,ToLookup,First,Last,ElementAt

    十.转换操作符 转换操作符是用来实现将输入对象的类型转变为序列的功能.名称以“As”开头的转换方法可更改源集合的静态类型但不枚举(延迟加载)此源集合.名称以“To”开头的方法可枚举(即时加载)源集合并 ...

随机推荐

  1. day06_python_1124

    01 昨日内容回顾 字典: 增: setdefault() 有责不变,无责添加 dic['key'] = vaulue 删: pop 按照key pop('key') pop('key',None) ...

  2. MATLAB 批量处理图片

    function resizephotos(directory, wh, isrecursive, isoverwrite, savetopath, supportFormat) % resizeph ...

  3. MySQL存储过程错误No data - zero rows fetched, selected, or processed

    原因:游标没有获取到任何内容! 解决方案 : 声明一个 continue handler declare continue handler for not found set V_NotFound = ...

  4. android 获取Asset中Properties文件配置的键值对

    1 获取 AssetManager AssetManager assetManager = context.getApplicationContext().getAssets(); 2 获取流 Str ...

  5. day 55 前端

    前端JQuery 语法 1 关于表格基数偶数背景颜色变换的 2 关于has后代   和not非 3 jQuery 和dom的转换  dom 转换成jQuery 用$(包起来) 不加引号 4  关于 n ...

  6. 初识linux------用户和用户组

    事先说明 本Linux的版本为Ubuntu. 为避免一些初学者由于权限问题特此事先说明,在非root权限下时,所有的代码加sudo:如下 (1)不在root权限 sudo useradd -m 用户名 ...

  7. outlook vba开发要点

    1.学学基础的VB语法 https://www.yiibai.com/vba/vba_programming_charts.html 2.找一个样例看看 VBA编程实现自动回复邮件 https://b ...

  8. L2-002. 链表去重(数组模拟)

    L2-002. 链表去重 因为数值比较小,所以直接用数组来模拟 #include<cstdio> #include<cstring> #include<iostream& ...

  9. [转]Introduction to Learning to Trade with Reinforcement Learning

    Introduction to Learning to Trade with Reinforcement Learning http://www.wildml.com/2018/02/introduc ...

  10. ndoe.js 和npm私有仓库的搭建

    下载nodejs的压缩包 网址:https://nodejs.org/en/ 下载以tar.xz结尾的包例如:node-v8.9.4-linux-x64.tar.xz 上传包到制定的目录 可以用lrz ...