【发布时间】:2021-08-22 10:39:54
【问题描述】:
我正在用 C# 编写程序,但遇到了问题。
this.ProcessCache = new Dictionary<ProcessCacheEntry, Process>(Process.GetProcesses().Select(p => new KeyValuePair<ProcessCacheEntry, Process>(new ProcessCacheEntry(p), p)));
这是我得到的错误:
错误 CS1503
参数 1:无法从 'System.Collections.Generic.IEnumerable>' 转换为 'int'
但 this.ProcessCache 是 Dictionary<ProcessCacheEntry, Process> 不是 int!
【问题讨论】:
-
给你的小提示:你可以把所有的代码放在一行中,并不意味着你应该,阅读起来很糟糕
-
我会使用ToDictionary 方法,它应该更短。
-
Dictionary
有八个构造函数。其中一个要求您传递一个 int 类型的变量,称为“容量”。因为您在 Dictionary 的构造函数中输入的参数与八个构造函数中的任何一个都不匹配,所以编译器猜测您正在使用带 int 的那个,它给您一个编译错误,因为您没有传递一个 int。
标签: c# linq dictionary