LINQ查询返回字典&LT;字符串,字符串&GT; [英] LINQ query to return a Dictionary<string, string>
本文介绍了LINQ查询返回字典&LT;字符串,字符串&GT;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有MyClass的集合,我想查询使用LINQ to得到不同的值,并取回一个字典&LT;字符串,字符串>的结果,但我想不通我怎么能做到这一点任何简单的比我做下面。你会一些清洁code是,我可以用得到的字典&LT;字符串,字符串>我的结果
VAR desiredResults =新字典&LT;字符串,字符串&GT;(StringComparer.OrdinalIgnoreCase);
VAR queryResults =(从MyClass的MC在myClassCollection
排序依据bp.SomePropToSortOn
选择新的KeyValuePair&LT;字符串,字符串&GT;(mc.KeyProp,mc.ValueProp))是不同的();
的foreach(在queryResults VAR项)
{
desiredResults.Add(item.Key.ToString(),item.Value.ToString());
}
解决方案
直接使用 ToDictionary
方法。
VAR的结果=
//为乔恩斯基特指出,排序依据是没用在这里,我只是把它
//演示如何使用排序依据的LINQ查询
myClassCollection.OrderBy(MC =&GT; mc.SomePropToSortOn)
.ToDictionary(MC =&GT; mc.KeyProp.ToString()
MC =&GT; mc.ValueProp.ToString(),
StringComparer.OrdinalIgnoreCase);
I have a collection of MyClass that I'd like to query using LINQ to get distinct values, and get back a Dictionary<string, string> as the result, but I can't figure out how I can do it any simpler than I'm doing below. What would some cleaner code be that I can use to get the Dictionary<string, string> as my result?
var desiredResults = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
var queryResults = (from MyClass mc in myClassCollection
orderby bp.SomePropToSortOn
select new KeyValuePair<string, string>(mc.KeyProp, mc.ValueProp)).Distinct();
foreach (var item in queryResults)
{
desiredResults.Add(item.Key.ToString(), item.Value.ToString());
}
解决方案
Use the ToDictionary
method directly.
var result =
// as Jon Skeet pointed out, OrderBy is useless here, I just leave it
// show how to use OrderBy in a LINQ query
myClassCollection.OrderBy(mc => mc.SomePropToSortOn)
.ToDictionary(mc => mc.KeyProp.ToString(),
mc => mc.ValueProp.ToString(),
StringComparer.OrdinalIgnoreCase);
这篇关于LINQ查询返回字典&LT;字符串,字符串&GT;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文