object转List<XXX>的问题

List<object> demo(object a)
{
  List<object> res = new List<object>();
  object c = a;
  Type d = a.GetType();
  if (d is IList && d.IsGenericType)
  {
     IList list = (IList)c;
     res = (List<object>)list;     //这里可能会有问题,请自行修改,或者用 IList.Cast<object>() 进行转换
  }
  else
  {
     throw new Exception("parm is not my type")
  }
  return res;
}

首先,这种方式是为了某个方法里的分支操作,可以传入一个值,也可以传入一个列表。
都说尽量不要干太多的事儿,可是由于我技术问题只能这么搞。

判断一个 object 是不是一个 List<T>,其实最中间强制转换哪里,可能会出错,转化一下能好一些。

时间: 2024-07-30 13:09:52

object转List<XXX>的问题的相关文章

记dynamic的一个小坑 -- RuntimeBinderException:“object”未包括“xxx”的定义

创建一个控制台程序和一个类库, 在控制台创建一个匿名对象.然后再在类库中訪问它.代码例如以下: namespace ConsoleApplication1 { class Program { static void Main(string[] args) { var obj = new { Id = 1 }; var c = new ClassLibrary1.TestClass(); c.Test(obj); Console.ReadLine(); } } } namespace ClassL

记dynamic的一个小坑 -- RuntimeBinderException:“object”未包含“xxx”的定义

创建一个控制台程序和一个类库, 在控制台创建一个匿名对象,然后再在类库中访问它,代码如下: namespace ConsoleApplication1 { class Program { static void Main(string[] args) { var obj = new { Id = 1 }; var c = new ClassLibrary1.TestClass(); c.Test(obj); Console.ReadLine(); } } } namespace ClassLib

dynamic调用时报RuntimeBinderException:“object”未包含“xxx”的定义 错误

情况如下:两个项目项目A命名空间 Test.PA   匿名类型所在 项目B命名空间 Test.PB 在Test.PB 中通过dynamic关键字调用Test.PA中匿名类型时报上述错误 解决办法 在项目A的AssemblyInfo.cs文件中加入 [assembly: InternalsVisibleTo("Test.PB")]  即可

二、交互式运行环境——REPL

1.什么是REPL? REPL:Read-Eval-Print-Loap,即读-计算-写-循环,描述了其四项基本功能. REPL是可交互运行环境,开发者可以在该运行环境中输入任何JavaScript表达式,回车后运行环境会显示结果.REPL是为了开发者方便测试JavaScript代码. 2.如何进入REPL环境? 在命令行中输入node回车即可. 3.REPL使用范例: 1)给变量赋值:foo = 'bar': 2)将对象赋值给变量: user = new Object(); user.Name

黑马程序员-java基础-反射

java.lang.Class类的实例代表java应用程序运行时加载的.class文档. 其构造函数: private Class() {} 说明我们无法创建Class对象,Class对象是有JVM自动产生,每个.class文档加载后,JVM会自动生成对应的Class对象. 什么时候加载.class文件进内存 1,用Class.forName()或者类加载器(Class claz = fu.class 没有执行static{}块??) 2,用 new 生成对象时 注意:用类声明参考名称并不会加载

JDK1.5的新特性(2):反射

关于Java基础的文章,我觉得写得还可以,以前发在了我其它的博客了,肯定是原创,现在再分享给大家出来. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Python Tutorial 学习(四)--More Control Flow Tools

4.1 if 表达式 作为最为人熟知的if.你肯定对这样的一些表达式不感到陌生: >>> x = int(raw_input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: ... x = 0 ... print 'Negative changed to zero' ... elif x == 0: ... print 'Zero' ... elif

node升级7.0以上版本使用gulp时报错

今天使用gulp时 ,出现了以下报错信息: Error: Cannot find module 'internal/fs'at Object.<anonymous> (/home/XXX/gulpide/node_modules/gulp/node_modules/vinyl-fs/node_modules/graceful-fs/fs.js:11:1) 疑问为什么五一前没多久使用还正常,后来发现是同事升级了node版本(>=7.0),导致相关依赖导致报错.解决方法是升级相关依赖  gr

Jquery异步提交$.ajax的使用

function test(){ var myEntity=new Object(); myEntity.pro1="xxx"; myEntity.pro2=10; $.ajax({ type: "post",//提交方式,post,get,put,delete 等 url:"http://ip:port/applicationName/action_url", data: JSON.stringify(UserChannel),//JSON.s