c# – 如何对字典执行LINQ查询?
发布时间:2020-12-15 23:39:14 所属栏目:百科 来源:网络整理
导读:我有字典,其中包含ID作为字符串,城市名称也作为字符串. 我想通过它的名字和返回ID找到城市.有我的代码: public string GetIdByCityName(string name){ if (Cities.ContainsValue(name)) { return Cities .Select(x = x) .Where(v = v.Value == name) .Selec
我有字典,其中包含ID作为字符串,城市名称也作为字符串.
我想通过它的名字和返回ID找到城市.有我的代码: public string GetIdByCityName(string name) { if (Cities.ContainsValue(name)) { return Cities .Select(x => x) .Where(v => v.Value == name) .Select(k => k.Key) .ToString(); } else { return string.Empty; } } 城市当然是我的字典.我有一个问题,因为这段代码不起作用.我试图使用调试器,我发现从方法返回的值:
我究竟做错了什么? 解决方法
您会看到此结果,因为.Select(k => k.Key)是一个LINQ查询,其类型为WhereSelectEnumerableIterator.它不是一个字符串.将ToString()应用于查询类型时,您会看到该类型的名称.
您可以选择与给定名称匹配的第一个条目: return Cities.Where(kvp => kvp.Value == name).Select(kvp => kvp.Key).FirstOrDefault(); 注意:几个城市可以有相同的名称.你也不需要这样做.选择(x => x),因为它的项目是自我输入. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |