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

Nic*_*ner 3 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;
    }
Run Code Online (Sandbox Code Playgroud)

dtb*_*dtb 10

您可以选择dict["filePath"]为每个dictlevelVariantURIDicts选择:

return levelVariantURIDicts.Select(dict => dict["filePath"])
                           .Distinct()
                           .ToList();
Run Code Online (Sandbox Code Playgroud)

丢弃.Distinct()如果结果重复条目都很好.
掉落.ToList(),如果你并不真的需要返回一个ICollection的<T>和一个IEnumerable <T>的罚款.