linq查询列表添加结果的位置

时间:2017-04-11 12:46:05

标签: linq

我有linq查询产生以下结果:

var result = from x in model.SITEs 
              where x.SiteId == homeSite 
              select new  { x.SiteId,
                            x.SiteAlloc1,
                            x.SiteAlloc2,
                            x.SiteAlloc3,
                            x.SiteAlloc4 });



SiteId  SiteAlloc1  SiteAlloc2  SiteAlloc3  SiteAlloc4
======================================================
1           5           3           2           4

但我需要的是更像这样的内容,其中RankSiteId在结果中的位置。

SiteId      Rank
==================
1           1
2           4
3           3
4           5
5           2

1 个答案:

答案 0 :(得分:1)

var result = from x in model.SITEs 
          where x.SiteId == homeSite 
          select new  { x.SiteId,
                        x.SiteAlloc1,
                        x.SiteAlloc2,
                        x.SiteAlloc3,
                        x.SiteAlloc4 }).
          Select((t,u) => new { 
                        SiteId = t.SiteId,
                        SiteAlloc1 = t.SiteAlloc1,
                        SiteAlloc2 = t.SiteAlloc2,
                        SiteAlloc3 = t.SiteAlloc3,
                        SiteAlloc4 = t.SiteAlloc4, 
                        Rank = u + 1));

其中u是索引(基于0,这就是我添加1的原因),或者在您的情况下,rank和t是所选对象