如何在我的linq-to-sql查询中选择两个列值

本文关键字:两个 选择 我的 linq-to-sql 查询 | 更新日期: 2023-09-27 18:23:40

我是linq to sql的初学者,这个:

var query = (from p in behzad.STATUS
                         select p);
            var taskCounts = (from worker in query.ToList()
                              group worker by worker.date into g
                              select g.Select(x=>x.natije) 
                                ).ToArray();


但在这行select g.Select(x=>x.natije)中只选择x.natije,我想选择另一个字段x.qaza,我怎么写呢?

如何在我的linq-to-sql查询中选择两个列值

只需创建一个匿名类型:-

 var taskCounts = (from worker in query
                   group worker by worker.date into g
                   select g.Select(x=> new { natije = x.natije, qaza = x.qaza } );

由于返回IEnumerable<IGrouping<T,T>>,您将不得不使用两个foreach循环来获取数据:-

foreach (var item in taskCounts)
{
    foreach (var x in item)
    {
         tempo = x.natije  //here
    }
}

此外,您可以从第一组中找到第一个natije,但这可能会导致错误:-

 string tempo = res.First().First().natije;

您可以在select上创建一个动态对象:

       var query = (from p in behzad.STATUS
                     select p);
        var taskCounts = (from worker in query.ToList()
                          group worker by worker.date into g
                          select g.Select(x=> new  {  Natije = x.natije,  Qaza = x.qaza }) 
                            ).ToArray();