gpt4 book ai didi

c# - Getkey 和 value by Except on just value

转载 作者:太空宇宙 更新时间:2023-11-03 13:17:06 25 4
gpt4 key购买 nike

我从 Dictionary () 开始,并希望从中删除其值存在于另一个 List 中的条目。下面的代码只返回一个列表。 Except 在删除匹配值后可以以某种方式返回剩余键/值对的字典吗?如果没有,怎么可能做到这一点?

//pardon my pseudocode
var pNames = new Dictionary<string, string>()
{
{key : "a1", value: "asdf_a1"},
{key : "a2", value: "asdf_a2"},
{key : "a3", value: "asdf_a3"}
};

var bUsers = new List<string>() { "asdf_a2" };

var nUsers = pNames.Values.Except(bUsers);
//nUsers should be a Dictionary<string,string> containing two key/value pairs:
//{key : "a1", value: "asdf_a1"},
//{key : "a3", value: "asdf_a3"}

最佳答案

由于您想要一本新词典,而不是从现有词典中删除项目,因此您可以过滤 KeyValuePair<string,string>使用 Where 组成字典的对象然后使用 ToDictionary转换结果 IEnumerable<KeyValuePair<string,string>> 的扩展方法回到Dictionary<string,string> .

var nUsers = pNames
.Where(pn => !bUsers.Contains(pn.Value)) // This will be IEnumerable<KeyValuePair<string,string>>
.ToDictionary(x => x.Key, x => x.Value);

如果您想要不区分大小写的匹配,请添加 IEqualityComparer<string>作为 Contains 的第二个参数方法。

关于c# - Getkey 和 value by Except on just value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25735132/

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