【发布时间】:2018-01-03 23:16:45
【问题描述】:
有没有办法将列表中每个对象的键值分配给字典?我想稍后访问该字典以将值分配给类的属性。
我从带有内部连接的 BD 中获取一些值,然后将这些值存储在对象列表中:
IEnumerable<object> units = _unitDetailsQuery.Execute<object>(out totalRecords);
每个对象都有以下属性:
- 品牌(字符串)
- 型号(字符串)
- 代码(字符串)
- BranchId (int)
然后我创建一个字典
IDictionary<string, object> props = new Dictionary<string, object>();
我在另一个问题中看到过类似这样的内容(我已将 sn-p 改编为我的代码):
BindingFlags bindingAttr = BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance;
foreach (object unit in units)
{
props = unit.GetType().GetProperties(bindingAttr).ToDictionary
(
propInfo => propInfo.Name,
propInfo => propInfo.GetValue(unit, null)
);
}
但是 props 在赋值后没有任何价值。
对象内部是这样的:
那么我如何获得这些值呢?提前致谢。
【问题讨论】:
-
您的样本中的“关键值”是什么?
-
@EvanTrimboli,因为其中一些属性来自其他表,如果我将它们添加到 steament 主表的模型中,它将影响映射。
-
可能值得一提的是哪种 ORM/代码 Execute
可能是 -
@NetMage 键值是我列出的属性的值。这些属性是对象的非公共成员。
-
Afaik 也很难弄清楚你要做什么以及为什么要这样做。在我看来,无论如何,每个单元的字典都会被覆盖
标签: c# list object dictionary