我想通过它的名字和返回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; }}
城市当然是我的字典.我有一个问题,因为这段代码不起作用.我试图使用调试器,我发现从方法返回的值:
System.linq.Enumerable+WhereSelectEnumerableIterator
@H_419_23@
2[System.Collections.Generic.keyvaluePair
2[System.String,System.String],System.Boolean]我究竟做错了什么?
解决方法 您会看到此结果,因为.Select(k => k.Key)是一个liNQ查询,其类型为WhereSelectEnumerableIterator.它不是一个字符串.将ToString()应用于查询类型时,您会看到该类型的名称.您可以选择与给定名称匹配的第一个条目:
return CitIEs.Where(kvp => kvp.Value == name).Select(kvp => kvp.Key).FirstOrDefault();注意:几个城市可以有相同的名称.你也不需要这样做.选择(x => x),因为它的项目是自我输入.
总结以上是内存溢出为你收集整理的c# – 如何对字典执行LINQ查询?全部内容,希望文章能够帮你解决c# – 如何对字典执行LINQ查询?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)