C# 使用linq将字典值转换为列表
下面的代码告诉我“lambda表达式的计算在调试器中无效”。 请从下面建议我做错的地方-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
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();