2011-02-15 43 views
6

我有一個返回MyObject列表的linq查詢。我想向MyObject添加一個名爲TheIndex的屬性,它包含序列中項目的縱座標。將索引添加到linq查詢結果

換句話說,我需要的是這樣的:

var TheResult = from d in MyDataContext 
       where..... 
       select new MyObject 
       { 
        Property1 = d.whatever, 

        TheIndex = ? 

       } 

查詢返回的MyObject的名單,我想在列表中的每個項目包含索引作爲其屬性之一。

謝謝。

+0

的可能的複製[您如何索引字段添加到LINQ結果](http://stackoverflow.com/questions/269058/how-do-you-add-an-index-field-to- linq-results) – 2016-07-13 03:26:21

回答

14

一旦脫離查詢語法,您會發現一個Select重載,它提供了您正在查找的索引。

var result = MyDataContext 
    .Where(d => d.Prop == "A") 
    .AsEnumerable() 
    .Select((d, i) => 
     new MyObject() { 
     Property1 = d.whatever, 
     TheIndex = i 
    }); 
+0

就在select語句之前,括號中有一個錯誤:查詢主體必須以select子句或group子句結束。 – frenchie 2011-02-15 02:43:10