我可以用LINQ编写这个语句的两种方法是什么?

时间:2013-07-27 07:15:20

标签: c# linq

据我所知,我可以通过两种不同的方式编写LINQ代码。有人能告诉我这个简单代码块的两种方法。哪种是最常用或最容易调试的

    var subTopics = _subTopicService.GetSubTopics(Id);
    var subTopicsSelect = (from subTopic in subTopics
          select new
          {
              id = subTopic.SubTopicId,
              name = subTopic.Name
          });

3 个答案:

答案 0 :(得分:2)

由于您的查询仅包含fromselect子句,因此将此转换为流畅语法所需要做的就是调用.Select

用流利的语法,即:

var subTopicsSelect = subTopics.Select(x => 
     new 
     {
          id = x.SubTopicId, 
          name = x.Name 
     });

进一步阅读

答案 1 :(得分:1)

您已经显示了第一种方式“类SQL语法”,第二种方式是“Lambda语法”:

subTopics.Select(s => new { id = s.SubTopicId, name = s.Name });

答案 2 :(得分:0)

这让我很困惑,因为我有一种完全不同的选择方法,这里有两种方法:

    var emailsToSend = db.emailQueues.Where(
            e => e.sent == false
        ).Take(5);


    var emailsToSend2 = from e2 in db.emailQueues
                            .Take(5)
                            .Where(
                            e => e.sent == false
                        ) 

                        select e2;

他们似乎都做了完全相同的事情,但我更喜欢第一种方法的语法。它更容易记住。