我无法将原始字符串保留在内存中,因为它太大了。
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#
答案 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
。