2009-03-16 3 views
1

は何次のコードのためのXMLに同等のLINQです:あなたは本当に一般的にXMLにLINQ、またはLINQを次のコードに相当するLINQ to XMLは何ですか?

public List<listing> GetList() 
    { 
     List<listing> listings = new List<listing>(); 

     if(File.Exists(this.XmlFilePath)) 
     { 
      DataSet ds = new DataSet(); 
      ds.ReadXml(this.XmlFilePath); 
      DataTable dt = ds.Tables["listing"]; 

      for(int row = 0; row < dt.Rows.Count; row++) 
      { 
       listing listing = new listing(); 

       listing.A = dt.Rows[row]["A"].ToString(); 
       listing.B = dt.Rows[row]["B"].ToString(); 
       listing.C = dt.Rows[row]["C"].ToString(); 
       listing.D= dt.Rows[row]["D"].ToString(); 
       listing.E = dt.Rows[row]["E"].ToString(); 

       listings.Add(listing); 
      } 
     } 
     return listings; 
    } 
+0

が必要ですか? –

+0

私は上記のコードをXMLから読み込むことを知っています。そのため、ソリューションはLINQ to XMLになると思いました。私は本当にLINQを知らないので、XMLファイルを使用しているのを見たときに、LINQ to XMLに重点を置いていました。おそらく、LINQ to XMLが何であるかを理解していないでしょう。 – Xaisoft

+0

また、データセットのLINQ to Objectsを使用することもできます。しかし、IMOでは、代わりにXMLにLINQを使用する方がいいです。 –

答えて

7
public List<Listing> GetList() 
    { 
     if (File.Exists(this.xmlFilePath)) 
     { 
      XDocument doc = XDocument.Load(this.xmlFilePath); 

      var listings = from row in doc.Root.Elements("listing") 
          select new Listing 
          { 
           A = (string)row.Element("A"), 
           B = (string)row.Element("B"), 
           C = (string)row.Element("C"), 
           D = (string)row.Element("D"), 
           E = (string)row.Element("E") 
          }; 

      return listings.ToList(); 
     } 
     else 
     { 
      return new List<Listing>(); 
     } 
    } 
+0

こんにちは、ありがとう。 LINQをXMLに本当に必要としているのか、LINQだけを使うことができるのか、誰かがコメントの上で尋ねました。私はXMLファイルから読み込んでいれば、XMLにLINQを使用すると思うので、彼が何を意味しているのか分かりません。 – Xaisoft

関連する問題