Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
linq查询到添加结果位置的列表_Linq - Fatal编程技术网

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

linq查询到添加结果位置的列表,linq,Linq,我使用linq查询生成以下结果: var result = from x in model.SITEs where x.SiteId == homeSite select new { x.SiteId, x.SiteAlloc1, x.SiteAlloc2, x.Sit

我使用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
但我需要的是更像这样的东西,其中排名是SiteId在结果中的位置

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

其中u是基于0的索引,这就是为什么我添加了1,或者在您的例子中,rank和t是所选对象

感谢您的快速响应。但是它不喜欢Selectt,u=>new行中的=SiteId{SiteId=SiteId,Rank=u+1;很抱歉应该是t.SiteId,我更新了答案,该答案仅适用于第一列SiteId,而不适用于其他列SiteAlloc1、SiteAlloc2、SiteAlloc3、sitealloc4。您的预期结果到底是什么?问题只是说SiteId和Rank预期结果显示在原始问题中。值对于cloumns SiteAlloc1、SiteAlloc2、SiteAlloc3、SiteAlloc4,它们实际上是一个SiteId,但名称不同,需要包含在结果中。
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));