C# 在Windows Phone应用程序的集合中缓存表是否是一种不良做法?

C# 在Windows Phone应用程序的集合中缓存表是否是一种不良做法?,c#,performance,memory,sql-server-ce,windows-phone,C#,Performance,Memory,Sql Server Ce,Windows Phone,这是我的设想 我在Windows Phone应用程序中有一个包含单个列的SQLCE表。在本专栏中,我有大约750个字符串,我必须在Lisbox中不时向用户显示这些字符串 为了避免一次又一次地查询表,我创建了一个字符串的静态集合。现在我只需要查询表一次,因为我将查询结果存储在静态集合中,其余时间我直接从静态集合中选择列表。它使我的UI更具响应性 如果这将是一个桌面应用程序,我不会有太多麻烦,但我是新的Windows Phone应用程序,想知道这是一个糟糕的做法吗?我担心只要我的应用程序还在运行,就

这是我的设想

我在Windows Phone应用程序中有一个包含单个列的SQLCE表。在本专栏中,我有大约750个字符串,我必须在Lisbox中不时向用户显示这些字符串

为了避免一次又一次地查询表,我创建了一个字符串的静态集合。现在我只需要查询表一次,因为我将查询结果存储在静态集合中,其余时间我直接从静态集合中选择列表。它使我的UI更具响应性


如果这将是一个桌面应用程序,我不会有太多麻烦,但我是新的Windows Phone应用程序,想知道这是一个糟糕的做法吗?我担心只要我的应用程序还在运行,就会有750个字符串出现在内存中。这是一个合理的担忧吗?如果是的话,任何备选方案?

问题的一部分都没有意义-循环

为了避免一次又一次地查询表,我创建了一个字符串的静态集合 和 如果是,有替代方案吗

直接得出答案-是的,有一个替代词。每次查询数据库。这是个问题吗?即使在手机上,返回750个字符串也很快

没有更多的上下文,其余的问题就无法回答

750个字符串,我必须在Lisbox中不时向用户显示这些字符串

这可能意味着一切,而不是什么。什么是“不时”?如果某个设置每隔几个小时使用一次,那么显然,将这些字符串一直保留在周围而不从SQL Server中提取它们是不明智的。有过滤器吗?在桌面上显示750个条目毫无意义,在小型手机界面上显示的条目更少

它使我的UI更具响应性

怎么做?每隔一段时间就能节省0.1秒?还是每分钟2秒

由于asnwer依赖于使用模式和实际字符串,因此如果没有更多的信息,查询是不可回答的


这就是说:我怀疑750行存储是否有必要——只要在需要时从数据库中提取即可。然后不要等到你把所有的列表都显示出来——这是下一步:我怀疑750个元素的列表框是否有意义。

我已经在列表框顶部为用户提供了一个
textbox
,用于过滤。作为用户类型,我过滤750个字符串。在列表框中。是的,它可以节省大约0.3秒。有足够的时间让用户注意到我不能说它会被使用多少。这取决于用户。我认为它将留在内存中,直到你处理它或你的应用程序关闭,如果它是一个静态集合。