c# – 使用列表项内容作为字符串名称
发布时间:2020-12-15 23:24:42 所属栏目:百科 来源:网络整理
导读:我正在使用C#并从sqlite查询响应中创建列表. List1包含一个在list2中具有字段名称的字段 List1[i].field = fieldname 我想使用存储在List1 [i] .field中的fieldname来访问List2中的项目,例如: List2[ii].+List1[i].field+ 我不知道这是否可能以这种方式在C#
我正在使用C#并从sqlite查询响应中创建列表.
List1包含一个在list2中具有字段名称的字段 List1[i].field = fieldname 我想使用存储在List1 [i] .field中的fieldname来访问List2中的项目,例如: List2[ii].+List1[i].field+ 我不知道这是否可能以这种方式在C#中对我来说相对较新,并且基本上脱离了我的PHP知识,这样的东西确实有效. 解决方法
对于这种类型的数据结构,通常使用字典(键/值对)来动态选择对象的属性.对于您的具体示例,这可以通过反射来完成,但它并不常用,因为其他结构使其更容易.
List2[ii].GetType().GetProperty(List1[i].field).GetValue(List2[ii],null); 反射通常不是最快的解决方案类型,如果可以避免,通常不会很好地进入并维护具有大量反射的代码. 或者,您可以使用Linq将List2从对象类型列表中转移到字典对象列表中,这样您就可以执行类似List2 [ii] [List1 [i] .field]的操作来完成相同的操作. var listDictionaries = List2 .Select(l => new Dictionary<string,object>() { new { "Prop1",l.Prop1 },new { "Prop2",l.Prop2 },new { "Prop3",l.Prop3 },}).ToArray(); listDictionaries[ii][List1[i].field]; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – 使用javascript进行自定义
- Office Automation,VSTO和Open XML SDK有什么区别?
- XML声明
- c# – ASP.NET MVC 3中是否有ActionNameAttribute用于类类型
- STM32学习日记7.FLASH
- ruby-on-rails – Rails 3.2.11中带有模型子目录的单表继承
- 诡异!React stopPropagation失灵
- ruby-on-rails-3 – 在Cucumber / Capybara / Selenium中发
- net.sf.json.JSONException: java.lang.reflect.Invocation
- c# – var的特异性是什么?