lamuda表达式 list移除空元素_c# – 如何使用lambda表达式从字典中删除项目

最简单的方法可能是创建一个新的字典,如果可以的话:

var newDictionary = oldDictionary.Where(pair => pair.Value >= 0)

.ToDictionary(pair => pair.Key,

pair => pair.Value);

如果您必须更改现有的字典(例如因为其他几个对象引用了相同的字典),那么您需要构建要删除的键列表,然后再删除它们:

var toRemove = dictionary.Where(pair => pair.Value < 0)

.Select(pair => pair.Key)

.ToList();

foreach (var key in toRemove)

{

dictionary.Remove(key);

}

编辑:我刚刚注意到第一句话:“我没有进入LINQ解决方案”。如果这意味着你不想使用LINQ解决方案,这里是附带的版本:

List toRemove = new List();

foreach (KeyValuePair pair in dictionary)

{

if (pair.Value < 0)

{

toRemove.Add(pair.Key);

}

}

foreach (var key in toRemove)

{

dictionary.Remove(key);

}

…但是如果你可以使用LINQ,我会鼓励你做。我的第二个解决方案相当于“旁边”版本,但更可读的IMO。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值