首先我對LINQ很陌生。更新列表<T>通過自我加入?
我有有數據像這樣的列表:
列表
list[0] = id=1,block=10,sg=320,dc=null
list[1] = id=1,block=10,sg=null,dc=320
list[2] = id=2,block=15,sg=400,dc=null
list[3] = id=2,block=15,sg=null,dc=400
我要更新這個列表,例如:
if(sg where block=x and id=y is null)
then set sg = (sg where block=x and id=y is not null)
and similarly for dc
所需的結果:
list[0] = id=1,block=10,sg=320,dc=320
list[1] = id=2,block=15,sg=400,dc=400
注意:id和block在這裏是標識因素。
類:
public class dcsg
{
public long id { get; set; }
public Nullable<decimal> dcvalue { get; set; }
public Nullable<decimal> sgvalue { get; set; }
public Nullable<int> revision { get; set; }
public Nullable<long> timestampid { get; set; }
public decimal fuelcost { get; set; }
public Nullable<short> isdeleted { get; set; }
public Nullable<long> blockno { get; set; }
public int stageid { get; set; }
}
你有沒有嘗試過自己?特別是在任何地方卡住?此外,您的結果與您之前描述的不同 - 「期望的結果」已刪除空條目,而描述表明您希望保留它們,並複製丟失的信息 – Andrei
如果顯示T類,則會很有用 –
結果只包含兩個項目或所有項目? –