-4

Linq でリストにランク付けする必要があります。

class test
{
    public int Id { get; set; }
    public string  Destination { get; set; }
}

私のデータは次のとおりです。

ID          Destination
1           Miami
2           Miami
3           Boston
4           Atlanta 

私が欲しいのはこれです:

ID          Destination        Value
1           Miami              Miami1
2           Miami              Miami2
3           Boston             Boston1
4           Atlanta            Atlanta1

Linqでこれを取得する方法??

4

3 に答える 3

5

これを試して:

list.GroupBy(l => l.Destination)
    .SelectMany(g => g.Select((x,i) => new {
                                            x.Id, 
                                            x.Destination,  
                                            Value = x.Destination + (i+1)
                                           }));

iは、SelectMany各グループ内の項目のインデックスを示します。ランクを取得するには、1 を追加するだけです。

結果:

Id destination   Value 
1  Miami         Miami1 
2  Miami         Miami2 
3  Boston        Boston1 
4  Atlanta       Atlanta1 
于 2013-08-12T15:14:35.520 に答える
1
var result = list.GroupBy(x=>x.Destination)
                 .Select(g => g.Select((x,i) => 
                                   new {
                                        ID = x.ID,
                                        Destination = x.Destination,
                                        Value = x.Destination + (i + 1)                                             
                                       }))
                 .SelectMany(x=>x);
于 2013-08-12T15:17:41.263 に答える