什么是优雅的LINQ方式IDictionary <translatortags,ienumerable <string =“”>&gt;到IDictionary <translatortags,string =“”>

时间:2016-10-13 22:16:49

标签: c# linq

使用IEnumerable的第一个字符串将IDictionary<TranslatorTags, IEnumerable<string>>转换为IDictionary<TranslatorTags, string>的优雅方法是什么?我在想

        var result = results.ToDictionary(x => x.Key, x => x.Value.First());

但也许有更优雅的方式?

更新。 Per @spender评论

        var result = results.ToDictionary(x => x.Key, x => x.Value == null ? null : x.Value.FirstOrDefault());

2 个答案:

答案 0 :(得分:4)

var result = source.ToDictionary(s => s.Key, s => s.Value?.FirstOrDefault());

答案 1 :(得分:0)

老学校的方式总是如此:

IDictionary<TranslatorTags, string> result = new Dictionary<TranslatorTags, string>();
foreach (var item in source)
    result.Add(item.Key, item.First());