使用linq将字典值转换为列表

Chr*_*web 29 c# linq dictionary list

下面的代码给出了'lambda表达式的评估在调试器中无效'.请从下面建议我做错的地方 -

List<MyFieldClass> lstFiedls;
lstFiedls = objDictionary.Select(item => item.Value).ToList();
Run Code Online (Sandbox Code Playgroud)

谢谢,

Dus*_*gen 65

您不需要使用Linq来获取值.它Dictionary(TKey, TValue)有一个包含值的属性Dictionary(TKey, TValue).Values:

var fields = objDictionary.Values.ToList();
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是,`Dictionary <TKey,TValue> .ValueCollection`类的`ToList()`方法实际上是`System.Linq`中的扩展方法.但是,由于`ValueCollection`实现了`ICollection`和`IEnumerable`,因此您可以将值添加到列表而不进行转换. (21认同)

Mar*_*kus 5

只需尝试将字典的值转换为带有ToList()的列表,您将收到编译器错误:

        Dictionary<int, int> dict = new Dictionary<int, int>();
        var result = dict.Values.ToList();
Run Code Online (Sandbox Code Playgroud)

除非您在文件中包含"using System.Linq".