linq查询到添加结果位置的列表
我使用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
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));