过滤 Dictionnary<string,string> 在数组 string[] 中没有它们的键
Filter Dictionnary<string,string> that do not have their keys in an array string[]
我有以下对象:
IDictionary<string, string> foo = new Dictionary<string, string>() {
{ "key1", "somerandomvalue" },
{ "key2", "somerandomvalue" },
{ "key3", "somerandomvalue" },
{ "key4", "somerandomvalue" }
}
public static readonly string[] bar = {
"key1",
"key3"
};
我想过滤 Dictionary foo 并保留 Array 栏中具有键的项目。所以我们会有这样的东西:
bar: {
{ "key1", "somerandomvalue" },
{ "key3", "somerandomvalue" }
}
我尝试了以下但不明白为什么 k 变量被标记为 char 类型
foo
.Where(k => x.Key.Any(x => bar.Contains(x.ToString())))
.ToDictionary(k => k.Key, v => v.Value);
您需要通过您的密钥收集 bar
.
在 Where
函数中使用 Any
foo.Where(x=> bar.Any(b => b == x.Key)).ToDictionary(k => k.Key, v => v.Value);
我有以下对象:
IDictionary<string, string> foo = new Dictionary<string, string>() {
{ "key1", "somerandomvalue" },
{ "key2", "somerandomvalue" },
{ "key3", "somerandomvalue" },
{ "key4", "somerandomvalue" }
}
public static readonly string[] bar = {
"key1",
"key3"
};
我想过滤 Dictionary foo 并保留 Array 栏中具有键的项目。所以我们会有这样的东西:
bar: {
{ "key1", "somerandomvalue" },
{ "key3", "somerandomvalue" }
}
我尝试了以下但不明白为什么 k 变量被标记为 char 类型
foo
.Where(k => x.Key.Any(x => bar.Contains(x.ToString())))
.ToDictionary(k => k.Key, v => v.Value);
您需要通过您的密钥收集 bar
.
Where
函数中使用 Any
foo.Where(x=> bar.Any(b => b == x.Key)).ToDictionary(k => k.Key, v => v.Value);