2017-04-11 95 views
0

的位置,我有一個產生以下結果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
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),或者在你的情況下,排名和T爲選擇目標

+0

謝謝你的快速反應。但它不喜歡'Select((t,u)=> new {SiteId = SiteId,Rank = u + 1)');' – PixelPaul

+0

'對不起,應該是t.SiteId,i更新了答案 –

+0

這隻適用於第一列「SiteId」,但不適用於其他列(「SiteAlloc1,SiteAlloc2,SiteAlloc3,SiteAlloc4」) – PixelPaul