2013-07-10 44 views
0

我需要想出一個算法,我認爲這很簡單,但對於我的生活我無法弄清楚。邏輯幫助。存儲舊的和新的傳入數據

我有兩個字符串:

string oldData; 
string newData; 

這些變量最初開始時會empty.I需要一種方法來存儲以前的數據,以及新進入的數據。有時候傳入的數據將是相同的,所以不需要改變。如果新傳入的數據不同,那麼oldData將獲得先前的newData,newData將獲取新的傳入數據。

+1

除非他們是巨大的字符串堅持他們一個複雜的答案,你處理數據的巨量,爲什麼不每次都複製新的數據呢? –

回答

0

我認爲這將是這樣的:

void checkData(string newData) { 
    if (newData != oldData) { 
     oldData = newData; 
    } 
} 
0

我不知道你的問題,因爲它似乎很明顯,但會像這樣的工作? :

string oldData; 
string newData; 

void newStringIncoming(string myNewString) 
{ 
    if(myNewString != newData) 
    { 
     oldData = newData; 
     newData = myNewString; 
    } 
} 
1

以上的工作,但如果你想使他們像一類的屬性,你可以不喜歡

public YourClass 
{ 

    string oldValue; 
    string newValue; 
    public string NewValue 
    { get { return newValue; } 
    set { if(! value.Equals(newValue)) 
      { 
       oldValue = newValue; 
       newValue = value; 
      } 
     } 
    } 

} 

然後,你可以做結合兩者中的WinForms財產或WPF應用程序。

0

難道你不只是做這樣的事情?

private string YourMethodNameHere(string oldValue,string newValue) 
{ 
    if(old != newValue) 
    return newValue; 
    return oldValue; 
} 
0

下面是使用一個事件,這將允許你添加額外的事件,而在二傳手

public string OldData { get; set; } 
private string _newData; 
public string NewData 
{ 
    get { return _newData; } 
    set 
    { 
     if (value.Equals(_newData)) { return; } 

     _newData = value; 
     DataChanged(this, EventArgs.Empty); 
    } 
} 

private event EventHandler DataChanged; 

public DataHolder() 
{ 

    DataChanged = (sender, args) => 
    { 
     DataHolder dataHolder = sender as DataHolder; 
     if (dataHolder != null) 
     { 
      dataHolder.OldData = NewData; 
     } 
    }; 
}