如何确定字符串是否已被更新/更改

本文关键字:更新 更改 何确定 字符串 是否 | 更新日期: 2023-09-27 18:11:17

我无法在内存中保留原始字符串,因为它太大了。

var source = "some text";
var cache = source;
source = "some other text";
if(source != cache){
   // Updated, do something
}

任何想法如何找到如果源字符串更新/更改没有比较源和缓存?

更新,我有一个发现链接的问题示例:使用hashcode来检测Listc#

如何确定字符串是否已被更新/更改

也许你可以尝试对两个字符串进行哈希并比较它们…

您尝试过使用自定义getter吗?

class SomeClass
{
    private bool m_MyStringUpdated;
    private String m_MyString;
    public String myString
    {
        get
        {
            return m_MyString;
        }
        set
        {
            m_MyString = value;
            m_MyStringUpdated = true;
        }
    }
}

如果不能将字符串保存为变量缓存,那么我认为最好的方法是使用键/值对的集合。例如Dictionary<datetime, string>,其中键是最近更新的日期时间戳,字符串是存储的字符串。

或者您可以使用Dictionary<bool, string>,其中键是布尔值,表示是否更新(true/false)。你只需要记住在你处理了一个更新的字符串值的实例后将其重置为false