ConcurrentDictionary AddOrUpdate列表(ConcurrentDictionary AddOrUpdate a list)

编程入门 行业动态 更新时间:2024-10-28 14:23:09
ConcurrentDictionary AddOrUpdate列表(ConcurrentDictionary AddOrUpdate a list)

我正在尝试使用ConcurrentDictionary来帮助完成过滤任务。

如果列表中出现一个数字,那么我想将一个条目从一个字典复制到另一个字典。

但这部分AddOrUpdate不对 - v.Add(number)

我明白了

“无法将类型'void'隐式转换为'System.Collections.Generic.List'

还有两个错误。

class Program { static void Main(string[] args) { Program p = new Program(); List<int> filter = new List<int> {1,2}; p.Filter(filter); } private void Filter(List<int> filter) { Dictionary<string, List<int>> unfilteredResults = new Dictionary<string, List<int>>(); unfilteredResults.Add("key1", new List<int> { 1,2,3,4,5}); ConcurrentDictionary<string, List<int>> filteredResults = new ConcurrentDictionary<string, List<int>>(); foreach (KeyValuePair<string, List<int>> unfilteredResult in unfilteredResults) { foreach (int number in unfilteredResult.Value) { if (filter.Contains(number)) { filteredResults.AddOrUpdate(unfilteredResult.Key, new List<int> { number }, (k, v) => v.Add(number)); } } } } }

I'm trying to use a ConcurrentDictionary to help with a filtering task.

If a number appears in list, then I want to copy an entry from one dictionary to another.

But this part of the AddOrUpdate is not right - v.Add(number)

I get

"Cannot implicitly convert type 'void' to 'System.Collections.Generic.List'

And two more errors.

class Program { static void Main(string[] args) { Program p = new Program(); List<int> filter = new List<int> {1,2}; p.Filter(filter); } private void Filter(List<int> filter) { Dictionary<string, List<int>> unfilteredResults = new Dictionary<string, List<int>>(); unfilteredResults.Add("key1", new List<int> { 1,2,3,4,5}); ConcurrentDictionary<string, List<int>> filteredResults = new ConcurrentDictionary<string, List<int>>(); foreach (KeyValuePair<string, List<int>> unfilteredResult in unfilteredResults) { foreach (int number in unfilteredResult.Value) { if (filter.Contains(number)) { filteredResults.AddOrUpdate(unfilteredResult.Key, new List<int> { number }, (k, v) => v.Add(number)); } } } } }

最满意答案

感谢Lucas Trzesniewski在评论中指出我的错误 - 他不想发表回答。

你可能的意思是:(k,v)=> {v.Add(number); 返回v; }

Thanks to Lucas Trzesniewski, for pointing out my mistake in the comments - he didn't want to post an answer.

You probably mean: (k, v) => { v.Add(number); return v; }

更多推荐

本文发布于:2023-07-19 01:01:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1169630.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:列表   ConcurrentDictionary   AddOrUpdate   list

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!