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

时间:2011-10-14 04:26:51

标签: c# .net

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

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

知道如何在不比较源和缓存的情况下查找源字符串是否已更新/更改?

已更新,我找到了一个已发现的关联问题 Example to use a hashcode to detect if an element of a List<string> has changed C#

3 个答案:

答案 0 :(得分:4)

也许您可以尝试对2个字符串进行哈希并比较这些...

我希望这有帮助...

答案 1 :(得分:2)

您是否尝试使用自定义吸气剂?

class SomeClass
{

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

答案 2 :(得分:1)

如果你不能将字符串保持为变量缓存,那么我会说最好的路径是使用带有键/值对的集合。像Dictionary<datetime, string>这样的键,其中键是最后更新的日期时间戳和字符串是存储的字符串。

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