2010-11-18 52 views
2

將LINQ轉換爲VB有點麻煩。我已經弄明白了,但迄今爲止我還沒有成功。將LINQ表達式從C#轉換爲VB

var feeds = 
    from feed in feedXML.Descendants("item") 
    select new 
    { 
    Date = DateTime.Parse(feed.Element("pubDate").Value) 
        .ToShortDateString(), 
    Title = feed.Element("title").Value, 
    Link = feed.Element("link").Value, 
    Description = feed.Element("description").Value, 
    }; 

在線代碼翻譯沒有幫助,而我不熟悉VB的LINQ並不是很好。任何幫助將不勝感激。謝謝!

回答

4

您需要:

  1. 使用With關鍵字伸入一個匿名類型時。
  2. 帶點的前綴屬性名稱。
  3. 根據您的VB.NET版本(在VB10中不需要)使用續行。在每行的末尾用一條下劃線表示一條線的延續。

這產生了:

Dim feeds = From feed in feedXML.Descendants("item") 
      Select New With 
      { 
       .Date = DateTime.Parse(feed.Element("pubDate").Value).ToShortDateString(), 
       .Title = feed.Element("title").Value, 
       .Link = feed.Element("link").Value, 
       .Description = feed.Element("description").Value 
      } 
+0

哇,2個幾乎相同的答案(和2個相同的評論),+1每個 – 2010-11-18 16:43:34

+0

@Patrick謝謝:) – 2010-11-18 16:46:10

3
Dim feeds = From feed In feedXML.Descendants("item") _ 
      Select New With { _ 
       .Date = DateTime.Parse(feed.Element("pubDate").Value).ToShortDateString(), _ 
       .Title = feed.Element("title").Value, _ 
       .Link = feed.Element("link").Value, _ 
       .Description = feed.Element("description").Value, _ 
      } 
+0

哇,2幾乎相同的答案(和2個相同的評論),1每個 – 2010-11-18 16:44:04

+0

哇,我正在那麼多比它需要的是更硬。謝謝。 – clickatwill 2010-11-18 16:44:29