资源字符串,从多个选项中选择

时间:2018-07-17 12:32:22

标签: c# asp.net localization resources

在特定情况下,我有一个使用多个不同短语的应用程序。我想将这些短语放入资源文件以启用本地化。在运行时,我希望能够随机选择要显示的N个字符串之一。

例如,假设我正在向用户显示问候语。我可能有以下短语作为问候语。

  1. 你好
  2. 嘿那里
  3. 欢迎

现在我知道我可以将它们存储在资源文件中,因为它是一个键/值对。

  1. GreetingVariant0
  2. GreetingVariant1
  3. GreetingVariant2

我如何在运行时随机选择其中之一?

我是否需要一个配置文件,存储“问候语变体”的数量,读入该配置文件,然后选择一个随机数,然后提取该资源?

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

我个人可能会使用配置解决方案,因为通过将给定范围内的随机数附加到资源键前缀并按键检索资源,检索资源将非常容易。

另一种选择是查询资源文件中的所有密钥(使用解决方案here),并使用LINQ选择具有给定前缀的密钥。您可以从结果集中选择一个随机的。当然,该解决方案效率较低,因为它需要循环所有现有资源。