帮助将LINQ表达式从C#转换为VB

时间:2010-11-18 16:33:55

标签: c# vb.net linq

我在将一些LINQ转换为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的不熟悉并不是很好。任何帮助将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:4)

你需要:

  1. 投影到匿名类型时使用With关键字。
  2. 带点的前缀属性名称。
  3. 根据您的VB.NET版本使用续行(VB10中不需要)。在每行末尾用下划线表示行继续。
  4. 这会产生:

    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
                }
    

答案 1 :(得分: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, _
            }