zoukankan      html  css  js  c++  java
  • C#比较两个由基本数据类型构成的object类型

     1    /// <summary>
     2     /// 比较查询条件
     3     /// </summary>
     4     public class ModelExtensions
     5     {
     6         /// <summary>
     7         /// 扩展方法(用于比较两个类型)
     8         /// </summary>
     9         /// <param name="modelA"></param>
    10         /// <param name="modelB"></param>
    11         /// <returns></returns>
    12         public bool IsEquals<T>(T objA, T objB)
    13         {
    14             Type objType = typeof(T);
    15             PropertyInfo[] ppts = objType.GetProperties();
    16 
    17             for (int i = 0; i < ppts.Length; i++)
    18             {
    19                 object proValueA = null;
    20                 object proValueB = null;
    21                 proValueA = ppts[i].GetValue(objA, null);
    22                 proValueB = ppts[i].GetValue(objB, null);
    23 
    24                 if (proValueA != null)//可以理解为没有赋值的不进行比较
    25                 {
    26                     if (proValueA.GetType() == typeof(string))//如果是字符型直接比较
    27                     {
    28                         string int1, int2;
    29                         int1 = (string)proValueA;
    30                         int2 = (string)proValueB;
    31                         if (proValueA != proValueB)
    32                         {
    33                             return false;
    34                         }
    35                     }
    36                     else if (proValueA.GetType() == typeof(int))//如果是数字型直接比较
    37                     {
    38                         int int1, int2;
    39                         int1 = (int)proValueA;
    40                         int2 = (int)proValueB;
    41                         if (int1 != int2)
    42                         {
    43                             return false;
    44                         }
    45                     }
    46                     else if (proValueA.GetType() == typeof(DateTime))//如果是时间型直接比较
    47                     {
    48                         DateTime int1, int2;
    49                         int1 = (DateTime)proValueA;
    50                         int2 = (DateTime)proValueB;
    51                         if (int1 != int2)
    52                         {
    53                             return false;
    54 
    55                         }
    56                     }
    57                     else if (proValueA.GetType() == typeof(byte))//如果是字节直接比较
    58                     {
    59                         byte int1, int2;
    60                         int1 = (byte)proValueA;
    61                         int2 = (byte)proValueB;
    62                         if (int1 != int2)
    63                         {
    64                             return false;
    65                         }
    66                     }
    67                     else if (proValueA.GetType() == typeof(bool))//如果是BOOL直接比较
    68                     {
    69                         bool int1, int2;
    70                         int1 = (bool)proValueA;
    71                         int2 = (bool)proValueB;
    72                         if (int1 != int2)
    73                         {
    74                             return false;
    75                         }
    76                     }
    77                     else//其他类型不比较
    78                     {
    79                         continue;
    80                     }
    81 
    82                 }
    83             }
    84 
    85             return true;
    86         }
    87     }
  • 相关阅读:
    php pdf添加水印(中文水印,图片水印)
    论文阅读---Reducing the Dimensionality of Data with Neural Networks
    Deep Learning综述[下]
    Install-Package:QRCoder已拥有为System.Drawing.Common定义的依赖项
    linux和windows之间传递文件
    IPV6修复工具
    Deep Learning综述[上]
    novaclient开发中遇到的问题小结
    easybcd删除win10启动项如何恢复?
    uefi+gpt安装双系统
  • 原文地址:https://www.cnblogs.com/shuzehui/p/3534621.html
Copyright © 2011-2022 走看看