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

C# 使用linq将字典值转换为列表,c#,linq,list,dictionary,C#,Linq,List,Dictionary,下面的代码告诉我“lambda表达式的计算在调试器中无效”。 请从下面建议我做错的地方- List<MyFieldClass> lstFiedls; lstFiedls = objDictionary.Select(item => item.Value).ToList(); List lstFiedls; lstFiedls=objDictionary.Select(item=>item.Value.ToList(); 谢谢,您不需要使用Linq来获取值。字典(TKey,T

下面的代码告诉我“lambda表达式的计算在调试器中无效”。 请从下面建议我做错的地方-

List<MyFieldClass> lstFiedls;
lstFiedls = objDictionary.Select(item => item.Value).ToList();
List lstFiedls;
lstFiedls=objDictionary.Select(item=>item.Value.ToList();

谢谢,

您不需要使用Linq来获取值。
字典(TKey,TValue)
有一个保存值的属性:


尝试使用ToList()将字典的值转换为列表时,将出现编译器错误:

Dictionary dict=new Dictionary();
var result=dict.Values.ToList();

除非在文件中包含“using System.Linq”

objDictionary
的类型是什么?可能值得注意的是
Dictionary.ValueCollection
类的
ToList()
方法实际上是
System.Linq
中的一个扩展方法。但是,由于
ValueCollection
实现了
ICollection
IEnumerable
,因此可以在不进行转换的情况下将值添加到列表中。还值得注意的是,可以使用
AsEnumerable()
Linq扩展方法来获取
IEnumerable
objDictionary.Values.AsEnumerable()
@ruberduck是Values.AsEnumerable().GetEnumerator();性能优于值。ToList().GetEnumerator();?我很好奇?这只是懒惰@GregoryWilliamBryant。它不会将整个列表作为副本加载到内存中。有几个基准可能很有趣。
var fields = objDictionary.Values.ToList();
        Dictionary<int, int> dict = new Dictionary<int, int>();
        var result = dict.Values.ToList();