2013-10-21 87 views
-2

可以說我有一個DataContact像這樣:更新與以往項目的列表<>項目值

[DataContract] 
public struct tblTesters 
{ 
    [DataMember] 
    public string ID; 

    [DataMember] 
    public string Value1; 

    [DataMember] 
    public string Value2;   
} 

我填充上述DataContract列表。我現在有一個列表。如果列表中的任何「Value1」爲空或空,則它應取得列表中前一個「Value1」項的值。更新後訂單應保持不變。

我該如何去更新null或空項目的值與以前的項目值?

+0

你可以使用屬性和編寫邏輯的制定者。 – SLaks

+0

您是否必須使用常規列表或自定義選項? – galenus

回答

3

也許使用簡單的循環? :)

for (int i = 1; i < myList.Count; i++) 
{ 
    myList[i].Value1 = myList[i].Value1 ?? myList[i-1].Value1; 
} 
+0

我寧願遠離簡單的for循環,因爲數據在這個問題的「現實世界」背景下非常大。 – BossRoss

+0

@BossRoss使用LINQ將花費比這更簡單的:) – VladL

+1

@BossRoss:一個簡單的循環是最快的方式來做到這一點。 – SLaks

-1
for(i=0; i < headerList.size();i++){ 
    if(headerList.get(i).getPurchaseOrdNo()==null){ 
     headerList.get(i).setPurchaseOrdNo(headerList.get(i-1).getPurchaseOrdNo()); 
    } 
}