gpt4 book ai didi

c# - 如何使用 linq 从 C# 中的字典中删除一个值?

转载 作者:太空宇宙 更新时间:2023-11-03 20:38:33 26 4
gpt4 key购买 nike

我有一个像这样的字典

Dictionary<String,List<String>> MyDict=new Dictionary<String,List<String>>();

其中包含

{ "One"   { "A", "B", "C" } }
{ "Two" { "C", "D", "E" } }

现在我需要删除“一”中的“C”

所以现在 MyDict 将变成

{ "One"   { "A", "B" } }
{ "Two" { "C", "D", "E" } }

迭代键值对并重构字典将产生所需的输出(现在我正在使用这种迭代方法)

但是在 LINQ 中有什么方法可以做到这一点吗?

最佳答案

这会为每个键创建一个新字典和一个新列表,省略“One”中的“C”:

var result = myDict.ToDictionary(
kvp => kvp.Key,
kvp => kvp.Value.Where(x => kvp.Key != "One" || x != "C").ToList());

或者,这会为“One”创建一个新字典和一个新列表,同时保留其他列表:

var result = myDict.ToDictionary(
kvp => kvp.Key,
kvp => (kvp.Key != "One") ? kvp.Value
: kvp.Value.Where(x => x != "C").ToList());

尽管就地修改字典可能更容易、更快捷:

myDict["One"].Remove("C");

关于c# - 如何使用 linq 从 C# 中的字典中删除一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4086094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com