【发布时间】:2012-09-18 09:46:55
【问题描述】:
我有一个收藏
List<Employee> 包含类似的属性
Name,EmployeeID,Address,JobTitle等
对于每个员工来说,有几列会发生变化,我需要根据这几列来更新我的 Active Directory。
所以我想为每一列创建一个isEditable 字段,这将表示该列是否针对特定员工发生了变化。但事实证明,我需要为所有列创建此字段,并且列数也经常变化。
所以我想出了嵌套字典集合
Dictionary<int, Dictionary<object, bool>>
它将Employee ID存储为key,object类型将存储所有column names和bool,默认情况下将是false
但我不知道如何使用 List<Employee> Collection 填充上述嵌套集合。
这是我到目前为止所尝试的
Dictionary<int, Dictionary<object, bool>> _isEditable = new Dictionary <int, Dictionary<object, bool>>();
foreach (var item in _empColl )
{
foreach (var type in _empColl .GetType ().GetProperties ())
{
_isEditable.Add (item.EmployeeID ,dict.Add (type.Name,false));
}
}
但它的抛出错误。我正在尝试从_empColl 获取每个EmployeeID 的元数据(列名)
【问题讨论】:
-
错误 1 最佳重载方法匹配 'System.Collections.Generic.Dictionary
>.Add(int, System.Collections.Generic .Dictionary -
为什么不在
Employee类中实现INotifyPropertyChanged以获取更改的属性列表? -
dict.add() 是“void”类型,你不能在 _isEditable.Add() 中使用它。
-
@Dennis:我不能使用它,因为我的属性没有改变。我正在尝试比较 2 个具有相同列的集合,并且对于每一行,不同的列我不做一张便条
标签: c#