【问题标题】:linq non-invocable member - cannot be used like a methodlinq 不可调用成员 - 不能像方法一样使用
【发布时间】:2016-08-03 16:22:45
【问题描述】:

我想将 clientXml 用作我的主表单类的公共属性,以便我可以在我的表单中的其他事件中使用它,但我收到错误“linq non-invocable member - cannot be used as a method”。

所以在顶部它被定义为:

public List<data> clientList = new List<data>();

...

var clientXml = XDocument.Load(@"ClientData.xml");

clientList(
    from d in clientXml.Descendants("Client")
    select new RegexData(
        d.Element("Bla1").Value.ToString(),
        d.Element("Bla2").Value.ToString(),
        d.Element("Bla3").Value.ToString(),
        d.Element("Bla4").Value.ToString(),
        d.Element("Bla5").Value.ToString(),
        d.Element("Bla6").Value.ToString(),
        d.Element("Bla7").Value.ToString(),
        d.Element("Bla8").Value.ToString(),
        bool.Parse(d.Element("Bla9").Value.ToString()),
        d.Element("Bla10").Value.ToString()
    )
);

【问题讨论】:

  • 这不是有效的 C#。我猜你的意思是clientList = new List&lt;data&gt;(from...)clientList.AddRange(from...)clientList = (from...).ToList();。正如您的代码现在所显示的,您正在尝试使用 member clientList 作为方法 clientList()。这没有意义,无法编译

标签: c# linq


【解决方案1】:

关于“不可调用成员”部分的消息有点神秘。 C# 试图告诉您使用 clientList,表示 List&lt;data&gt; 的字段,好像它是一个 方法 是不允许的。

你应该写一个作业:

clientList = (
from d in clientXml.Descendants("Client")
select new RegexData(
    d.Element("Bla1").Value.ToString(),
    d.Element("Bla2").Value.ToString(),
    d.Element("Bla3").Value.ToString(),
    d.Element("Bla4").Value.ToString(),
    d.Element("Bla5").Value.ToString(),
    d.Element("Bla6").Value.ToString(),
    d.Element("Bla7").Value.ToString(),
    d.Element("Bla8").Value.ToString(),
    bool.Parse(d.Element("Bla9").Value.ToString()),
    d.Element("Bla10").Value.ToString()
).ToList();

并确保 clientList 具有 List&lt;RegexData&gt; 数据类型。

【讨论】:

  • 哇,非常感谢您的快速响应,我不知道为什么我没有想到这一点。对 C# 有点新,非常感谢您的帮助!
猜你喜欢
  • 2013-08-10
  • 2013-07-07
  • 1970-01-01
  • 2017-04-11
  • 2016-05-01
  • 2016-04-11
  • 2018-05-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多