本文主要是介绍List<KeyValuePair<string, int>> 返回空值不为null,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在List中使用Find进行查找的时候,如果没有找到,正常情况下会返回一个null. 比如一个List<string>中,如果根据某个字符串过滤,没有找到的话,会返回一个null.
如果List<KeyValuePair<string, int>>中使用Linq进行查找,没有找到的情况下,返回的并非是null,而是[null, 0], 分别为string与int的默认值。
这是为什么?查看List的源码,在没有找到符合条件的元素的时候,会返回default(T),这个default在T为对象的情况下,会返回null,string也是对象,所以会返回null. 但是在结构体的情况下,就不能返回null了,而是返回结构体内部的默认值。KeyValuePair<string, int>是一个结构体,所以没有返回null.
包括如下代码,返回的都是int的默认值。
这篇关于List<KeyValuePair<string, int>> 返回空值不为null的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!