我有一个哈希表,我正在将它转换成同一行的字典。
Hashtable ids = new Hashtable();
ids = new Hashtable(_AppContext.TBL_PERSON.Where(oItem => oItem.DELETED == false).ToDictionary(o => o.CODE.ToUpper(), o => o.PERSON_ID));问题是我搞错了
“已经添加了一个具有相同键的项。
检查行之后,代码列多次具有相同的行值。是否有一种方法只选择与First()类似的第一个值,但不首先使用datatable,然后将其更改为hashtable?
发布于 2020-04-27 18:59:45
当然-使用GroupBy,然后在组中选择First()对象作为值:
ids = new Hashtable(
_AppContext.TBL_PERSON.Where(oItem => oItem.DELETED == false)
.GroupBy(o => o.CODE.ToUpper())
.ToDictionary(g => g.Key, g => g.First().PERSON_ID)
);请记住,这给您提供了一个HashTable of KeyValuePair<T,U>对象,这似乎很奇怪。如果只想要字典,仍然可以使用GroupBy,只需删除外部HashTable创建即可。
https://stackoverflow.com/questions/61466351
复制相似问题