我用以下方式声明了一个字典:
public static Dictionary<string,bool> Features {get;set;}
Run Code Online (Sandbox Code Playgroud)
填充此字典后,它具有以下值:
**[Key],[Value]**
module1.add,true
module1.update,true
module1.delete,true
module1.save,true
module1.clear,true
module2.add,true
module2.update,true
module2.delete,true
module2.save,true
...
module10.add,true
module10.update,true
module10.delete,true
module10.save,true
Run Code Online (Sandbox Code Playgroud)
填充后,我需要迭代字典键并更新字典值.
例如:无论我在密钥中使用.add和.delete,其值都需要更新为false.
更新后,它必须如下所示
module1.add,false
module1.update,true
module1.delete,false
module1.save,true
module1.clear,true
module2.add,false
module2.update,true
module2.delete,false
module2.save,true
...
module10.add,false
module10.update,true
module10.delete,false
module10.save,true
Run Code Online (Sandbox Code Playgroud)
让我知道如何遍历字典并更新C#中的值.非常感谢您的帮助.
这将获得以.add或.delete结尾的所有键,并将其值更新为false.
Features.Keys.Where(v => v.EndsWith(".add") || v.EndsWith(".delete"))
.ToList().ForEach(v => Features[v] = false);
Run Code Online (Sandbox Code Playgroud)
这里没有linq:
var targetFeatuers = new List<string>();
foreach (var feature in Features.Keys)
{
if (feature.EndsWith(".add") || feature.EndsWith(".delete"))
{
targetFeatuers.Add(feature);
}
}
foreach (var feature in targetFeatuers)
{
Features[feature] = false;
}
Run Code Online (Sandbox Code Playgroud)
请注意,您必须创建单独的键列表,以避免在枚举时修改集合.
| 归档时间: |
|
| 查看次数: |
1040 次 |
| 最近记录: |