public void searchCollectLogs()
        {
            if (File.Exists("../logs/collectlogindex.xml"))
            {
                XDocument xdoc = XDocument.Load("../logs/collectlogindex.xml");
                var getAllCollect = from c in xdoc.Root.Elements("collectLog") select c;
                var getBindCollect = from q in getAllCollect
                                     select new CollectLog
                                     {
                                         BatchNo = (string)q.Element("batchNo"),
                                         CollectTime = (string)q.Element("collectTime"),
                                         DataFileCount = (string)q.Element("dataFileCount"),
                                         HandleResult = (string)q.Element("handleResult"),
                                         Re1 = (string)q.Element("re"),
                                     };
                gridCollectTotal.DataSource = getBindCollect.ToList();
            }
        }这个void换成什么类型啊   急救然后就是 linq to xml的一个模糊查询string lastData= null;
            XElement xe = XElement.Load(@"F://LinqToXML.xml");
            var getAll = from c in xe.Elements("student").Elements("id") where c.Element("id").Value == "4" select c;
            foreach (XElement item in getAll)
            {
                //lastData = item.Value.ToString();
                MessageBox.Show(item.Value.ToString());   
            }
这样写报错 未将对象设置到对象的实例

解决方案 »

  1.   

    1.自定义类 返回  http://topic.csdn.net/u/20110322/09/f9d5dd14-6f75-4397-8ceb-9da1b634ba56.html2. var getAll = from c in xe.Elements("student")
     where c.Element("id").Value.Contains("4") select c;
      

  2.   

    模糊查询 我只想获取ID  在xe.Elements("student")后面加上.Elements("id")不行吗?
      

  3.   

    可以
    只是你加的地方不对 var getAll = from c in xe.Elements("student")
     where c.Element("id").Value.Contains("4") select c.Element("id");
      

  4.   

    哦 3Q 
     var getBindCollect = from q in getAllCollect
      select new CollectLog
      {
      BatchNo = (string)q.Element("batchNo"),
      CollectTime = (string)q.Element("collectTime"),
      DataFileCount = (string)q.Element("dataFileCount"),
      HandleResult = (string)q.Element("handleResult"),
      Re1 = (string)q.Element("re"),
      };
     他最后查询出来的是个List泛型的类型吗
      

  5.   

    q107770540
    var getAll = from c in xe.Elements("student")
     where c.Element("id").Value.Contains("4") select c.Element("id");  这样写报错啊无法将类型为“<GetElements>d__11”的对象强制转换为类型“System.Xml.Linq.XElement”。
      

  6.   

    var getAll = from c in xe.Elements("student")
     where c.Element("id").Value.Contains("4") select c.Element("id"); 这样写报错啊
     这样写是对的我搞错了
      

  7.   

    最后查出的List是 List<CollectLog>即List<CollectLog> list=getBindCollect .ToList();