加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 隐式类型变量出错

发布时间:2020-12-15 19:54:45 所属栏目:百科 来源:网络整理
导读:将 linq选择分配给隐式类型的局部变量“var”时,我会收到 跟随错误. 错误:无法将方法组分配给隐式类型的局部变量 在 root : var mailgroup = emails.Where(p =IsValidFormat(p.Value)).Select; 元素字典 Dictionaryint,string emails = new Dictionaryint,s
将 linq选择分配给隐式类型的局部变量“var”时,我会收到
跟随错误.

错误:无法将方法组分配给隐式类型的局部变量

root : var mailgroup = emails.Where(p =>IsValidFormat(p.Value)).Select;

元素字典

Dictionary<int,string> emails = new Dictionary<int,string>();
        emails.Add(1,"Marry@yahoo.com");
        emails.Add(2,"Helan@gmail.com");
        emails.Add(3,"Rose");
        emails.Add(4,"Ana");
        emails.Add(5,"Dhia@yahoo.com");
        Dictionary<int,string> dc = new Dictionary<int,string>();

怎么纠正呢?

解决方法

你有什么期望呢?您可能希望在那里进行实际的方法调用,例如:

var mailgroup = emails.Where(p =>IsValidFormat(p.Value))
                      .Select(p => p.Value);

或者,如果您只想要键/值对,则可以使用:

var mailgroup = emails.Where(p =>IsValidFormat(p.Value));

并完全删除“选择”.

如果你只想要值(根据第一个代码片段),我建议使用:

var mailgroup = emails.Values.Where(p =>IsValidFormat(p));

如果没有任何括号,您对“选择”的引用就是一个方法组 – 您要转换为委托的东西,例如

Func<int> x = SomeMethod; // Where SomeMethod is declared as "int SomeMethod()"

在这种情况下使用Select作为方法组并没有多大意义,尽管它只是可行的……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读