是否有方法使用lambda表达式在NameValueCollection中查找非null值
本文关键字:查找 null NameValueCollection 有方法 lambda 表达式 是否 | 更新日期: 2023-09-27 18:28:42
这个问题几乎说明了一切。我有一个NameValueCollection,其中所有值都以null开头,然后随着事情的发展被设置为特定的值。每次设置值时,我都需要查找集合中值所在的项数!=无效的目前,我正在迭代该集合并计算非null值,但我想知道是否有一种方法可以通过lambda表达式更干净地完成它。
NameValueCollection
不实现IEnumerable<T>
,但可以使用具有Keys
属性的OfType
方法将密钥转换为IEnumerable<string>
,并使用Count
方法:
int nullCount = collection.Keys.OfType<string>().Count(x => collection[x] != null);
你的意思是:
NameValueCollection collection = ...; // init as appropriate
int countOfNull = collection.Cast<string>().Where(key => collection[key] != null).Count;
目前还不清楚你是如何陷入这种境地的。如果您可以使用更合适的数据结构,这样知道已经填充了多少个键就可以自然地作为立即值(例如,在集合旁边保留一个计数器,或者只有在有值时才添加键/值对,等等)