1     /// <summary>
2 /// 判断类型是否为可操作的列表类型
3 /// </summary>
4 /// <param name="type"></param>
5 /// <returns></returns>
6 public static bool IsList(this Type type)
7 {
8 if (typeof(System.Collections.IList).IsAssignableFrom(type))
9 {
10 return true;
11 }
12 foreach (var it in type.GetInterfaces())
13 {
14 if (it.IsGenericType && typeof(IList<>) == it.GetGenericTypeDefinition())
15 return true;
16 }
17 return false;
18 }
 1     /// <summary>
2 /// 判断类型是否为列表类型
3 /// </summary>
4 /// <param name="type"></param>
5 /// <returns></returns>
6 public static bool IsEnumerable(this Type type)
7 {
8 if (type.IsArray)
9 {
10 return true;
11 }
12 if (typeof(System.Collections.IEnumerable).IsAssignableFrom(type))
13 {
14 return true;
15 }
16 foreach (var it in type.GetInterfaces())
17 if (it.IsGenericType && typeof(IEnumerable<>) == it.GetGenericTypeDefinition())
18 return true;
19 return false;
20 }

C# 反射 判断类型是否是列表的更多相关文章

  1. C#反射实现 C# 反射 判断类的延伸类型 使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码 C# ADO.NET的SqlDataReader对象,判断是否包含指定字段 页面中添加锚点的几种方式 .net 简单实用Log4net(多个日志配置文件) C# 常用小点

    C#反射实现   一.反射概念: 1.概念: 反射,通俗的讲就是我们在只知道一个对象的内部而不了解内部结构的情况下,通过反射这个技术可以使我们明确这个对象的内部实现. 在.NET中,反射是重要的机制, ...

  2. C# 反射 判断类的延伸类型

    判断类型是否被继承.实现 1.判断是否实现了指定接口 添加测试类: public class TestClass2 : TestClass1 { } public class TestClass1 : ...

  3. c#反射机制学习和利用反射获取类型信息

    反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类.结构.委托.接口和枚举等)的成员,包括方法.属性.事件,以及构造函数等.还可以获得每个成员的 ...

  4. SpringMVC上传文件以流方式判断类型附常用类型

    // 此类中判断类型所截取的byte 长度暂不确定,请使用者测试过使用 package com.tg.common.other; import com.tg.common.tginterface.TG ...

  5. Java的equals方法,首先要判断类型是否相同

    如下代码,Long 和Integer 进行比较: Integer aa = 1; Long bb= 1L; System.out.println(aa.equals(bb)); 输出为:false 查 ...

  6. obj.getClass() == Person.class 用于判断类型

    obj.getClass() == Person.class  用于判断类型

  7. js判断类型的方法

    //判断类型 var arr=[]; Object.prototype.toString.call(arr)=='[object Array]' //判断是否是包含关系 function elCont ...

  8. Go语言反射之类型反射

    1 概述 类似于 Java,Go 语言也支持反射.支持反射的语言可以在运行时对程序进行访问和修改.反射的原理是在程序编译期将反射信息(如类型信息.结构体信息等)整合到程序中,并给提供给程序访问反射信息 ...

  9. laravel where筛选会判断类型吗?

    laravel where筛选会判断类型吗? laravel where筛选会判断类型吗? laravel where筛选会判断类型吗? 这个说会判断不对,说不会判断也不对. 当字符串'1'和数值1是 ...

随机推荐

  1. 【js】js执行机制-js单线程-同步和异步

    js是单线程 即同一个时间只能做一件事,JavaScript是为处理页面中用户的交互,以及操作DOM而诞生的.比如我们对某个DOM元素进行添加和删除操作,不能同时进行.应该先进行添加,之后在进行删除. ...

  2. Java集合框架个人总结

    Java集合框架个人总结 集合主要分为两大类:①单列集合Collection ②双列集合Map 集合存储的都是引用类型,不可是基础类型,如果保存基础类型需要用包装类. 1.Collection接口 ​ ...

  3. Docker 容器与镜像

    列出所有容器ID :docker ps -aq 查看所有运行或者不运行容器:docker ps -a 停止所有的container(容器),这样才能够删除其中的images:docker stop $ ...

  4. SSH、SFTP、FTP、Telnet、SCP、TFTP协议的原理

    一.SSH协议1.什么是SSH?SSH全称 安全外壳协议(Secure Shell),,是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境. 如果一个用户从本地计算机,使用SSH ...

  5. C#实现控制台打印年历

    C#实现控制台打印年历 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System. ...

  6. JAVA获取MultipartFile文件的MD5

    Java获取文件的MD5,核心都是通过JAVA自带的MessageDigest类来实现. 获取文件MD5值主要分为三个步骤: 第一步获取文件的byte信息, 第二步通过MessageDigest类进行 ...

  7. 02-Spring基于XML的Bean属性注入

    属性值注入:就是给属性赋值 创建一个Account类: public class Account implements Serializable { private int aid; private ...

  8. nacos实现Java和.NetCore的服务注册和调用

    用nacos作为服务注册中心,如何注册.NetCore服务,如何在Java中调用.NetCore服务呢?可以分为下面几个步骤: 0.运行nacos 1.开发.net core服务,然后调用nacos提 ...

  9. SpringBoot笔记--配置->profile的配置

    profile--动态配置切换 profile配置方式: 使用spring.profile.active=进行激活.properties文件 直接使用一个.yml文件代替多文件配置 使用---分隔符分 ...

  10. k8s容器互联-flannel host-gw原理篇

    k8s容器互联-flannel host-gw原理篇 容器系列文章 容器系列视频 简析host-gw 前面分析了flannel vxlan模式进行容器跨主机通信的原理,但是vxlan模式需要对数据包进 ...