Linq查询对象引用未设置为对象的实例。 2

时间:2013-08-01 02:37:03

标签: c# linq

这是在nexp读取的知识分子中返回正确的元素原因 喜欢这个离线我试图将离线值的元素更改为Ready。

public void ChangeConnectionStatus(string SelectedFile)
        { 
      System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo(@"C:\Users\Rick\Documents\Visual Studio 2010\Projects\Server\server.config\DC_Classes\");
            //Getting All file names from the directory info
            System.IO.FileInfo[] fileNames = dirInfo.GetFiles(SelectedFile + "*.xml*");
            //Foreach itterator
            foreach (System.IO.FileInfo fi in fileNames)
            {
                XElement main = XElement.Load(fi.FullName);

               IEnumerable<XElement> Nongroups = from nexp in main.XPathSelectElements("Network/Posted_Status")
                            where nexp.Element("Posted_Status").Value == "Offline"
                            select nexp;
            ////Handle the process here
            foreach (XElement nexp in Nongroups)
            {
               DialogResult Yes = MessageBox.Show("This Will Online This Group Are You Sure You Want To Do This","System Info",MessageBoxButtons.YesNo,MessageBoxIcon.Information);
               if (Yes == DialogResult.Yes)
               {
                   nexp.SetValue("Ready");
               }
             }
          }

      }

2 个答案:

答案 0 :(得分:0)

如果您不确定对象的类型,请使用var

foreach (var nexp in Nongroups)

并以这种方式分配值:

if (Yes == DialogResult.Yes)
{
    nexp.Element("Posted_Status").Value = "Ready";
}

答案 1 :(得分:0)

我的猜测是你在this SO线程中看到了缺少名称空间。所以我希望nexp在这一行被设置为null:

  <.>来自main.XPathSelectElements中的 nexp (“Network / Posted_Status”)

您也可以阅读此MSDN thread

尝试一下,希望它有所帮助!