gpt4 book ai didi

c# - 如何使用 Dictionary/List 过滤这些数据?

转载 作者:太空宇宙 更新时间:2023-11-03 15:31:45 25 4
gpt4 key购买 nike


我的代码需要一些帮助。

这段代码是我写的。

List<Document> doc = SystemOperationManager.GetSalesByMemberLucene(ConfigurationManager.GetIndexPath(), memberId).ToList();

Dictionary<string, Department> _allDepartments = DepartmentManager.GetAll().ToDictionary(s => s.Id.ToString(), s => s);
Dictionary<string, User> _allUsers = UserManager.GetAll().ToDictionary(s => s.Id.ToString(), s => s);
Dictionary<string, Product> _allProducts = ProductManager.GetAll().Where(x => x.CustomType == 2).ToDictionary(s => s.Id.ToString(), s => s);

List<SystemOperation> so = doc.Select(s => new SystemOperation
{
ObjStylist = s.Get("ObjStylist") != null ? _allUsers[s.Get("ObjStylist")] : null,
ObjDepartment = s.Get("ObjDepartment") != null ? _allDepartments[s.Get("ObjDepartment")] : null,
ObjProduct = s.Get("ObjProduct") != null ? _allProducts[s.Get("ObjProduct")] : null
//TotalPointsCollected = decimal.Parse(s.Get("TotalPointsCollected")),
//PointsAccumulated = decimal.Parse(s.Get("PointsAccumulated"))
}).ToList();

_result = so;
rgList.DataSource = _result;
rgList.DataBind();



当我运行代码时,它说它有这个错误。

“System.Collections.Generic.KeyNotFoundException”类型的异常发生在 mscorlib.dll 中,但未在用户代码中处理

附加信息:字典中不存在给定的键。

谁能帮我解决这个问题?

最佳答案

考虑到你提到的异常,我怀疑在你尝试访问它们之前应该检查对字典的调用,所以而不是

_allUsers[s.Get("ObjStylist")]

你可以试试

_allUsers.ContainsKey(s.Get("ObjStylist")) ? _allUsers[s.Get("ObjStylist")] : null

_allDepartments[s.Get("ObjDepartment")]_allProducts[s.Get("ObjProduct")] 也是如此。

关于c# - 如何使用 Dictionary/List<Document> 过滤这些数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33563199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com