我有以下linq查詢productionMachines.OrderBy(x => x.TimeDone).ToList();
現在我想分配一些屬性X
,它的位置索引在集合中。 像第一個生產機器將收到X
等於1 secound 2等...如何將集合的索引分配給屬性
示例生產機器有5個條目。 productionMachine [0] .X將有1 .. .. .. productionMachine [4] .X將有5
我有以下linq查詢productionMachines.OrderBy(x => x.TimeDone).ToList();
現在我想分配一些屬性X
,它的位置索引在集合中。 像第一個生產機器將收到X
等於1 secound 2等...如何將集合的索引分配給屬性
示例生產機器有5個條目。 productionMachine [0] .X將有1 .. .. .. productionMachine [4] .X將有5
使用select
productionsMachines.OrderBy(x => x.TimeDone)
.Select((x,i) =>
{
x.Property = i+1;
return x;
});
int index= 1;
productionMachines
.OrderBy(p => p.TimeDone)
.ToList()
.ForEach(p2 =>
{
p2.X = index++;
}
);
這種方法的缺點是集合會迭代兩次。一次爲'ToList()',然後一次爲ForEach –
謝謝@BobVale澄清。我以前從來沒有想過這件事。現在我應該更改我的項目的一些代碼。 :) –
其他形式你能請澄清你的問題多一點。我現在讀了你的問題3次,現在仍然知道你想要做什麼...... :) –
你可能想使用類似'.Select((row,index)=> new {row.X = index}) ' – oleksii
@oleksii以及它將會是索引+ 1,因爲OP希望索引從1開始! –