获取一组字典中给定键的每个值的列表?

时间:2010-03-18 19:46:07

标签: c#

如何更清洁/简洁地编写此代码?

    /// <summary>
    /// Creates a set of valid URIs.
    /// </summary>
    /// <param name="levelVariantURIDicts">A collection of dictionaries of the form:
    ///                                     dict["filePath"] == theFilePath </param>
    /// <returns></returns>
    private ICollection<string> URIsOfDicts(ICollection<IDictionary<string, string>> levelVariantURIDicts)
    {
        ICollection<string> result = new HashSet<string>();
        foreach (IDictionary<string, string> dict in levelVariantURIDicts)
        {
            result.Add(dict["filePath"]);
        }
        return result;
    }

1 个答案:

答案 0 :(得分:10)

您可以使用Selectdict["filePath"]中的每个dict选择levelVariantURIDicts

return levelVariantURIDicts.Select(dict => dict["filePath"])
                           .Distinct()
                           .ToList();

如果结果中的重复条目正常,则删除.Distinct() 如果您确实不需要返回ICollection,请删除.ToList()&lt; T&gt;和IEnumerable&lt; T&gt;很好。