【问题标题】:C# string pairing method (external file)C#字符串配对方法(外部文件)
【发布时间】:2018-10-24 22:07:39
【问题描述】:

我正在编写一个 Windows 服务 C# 服务。

在其中我需要一个可以获取值(字符串)并查看外部文件以尝试匹配它并返回匹配值的功能,也是一个字符串。 例如,该文件可能有:

Stringone – anothertwo

因此,如果传递了 Stringone,则返回值将是 anothertwo 我需要它非常快速,重要的是我必须能够在不重新编译的情况下进行更改,因此将其放入资源文件并不是一个真正的选择。

将少于 100 个条目。所以 DB 似乎有点矫枉过正。

有没有人对什么可能是完成此任务的最佳方法有一些建议?

谢谢。

【问题讨论】:

  • 我认为字典 有帮助。
  • 资源文件似乎是一个非常合理的解决方案。您不必编译资源文件,它们可以说是独立文件(很像 app.config)。
  • 但这需要重新编译以进行任何更改,不是吗?

标签: c# .net


【解决方案1】:

由于条目数量很少,我认为最简单的方法是创建一个dictionary<string, string>,序列化为json(因为它很简单),然后在服务的start 方法中反序列化它。 然后,当您的服务收到请求时,您所要做的就是这样:

public string GetTranslation(string source)
{
    string returnValue = "";
    _Dictionary.TryGetValue(source, out returnValue);
    return returnValue; // if TryGetValue fails, you simply return an empty string
}

或者,如果没有翻译,您可以返回源代码:

public string GetTranslation(string source)
{
    string returnValue = "";
    return _Dictionary.TryGetValue(source, out returnValue) ? source, returnValue;
}

无论哪种方式,它都会非常快。

【讨论】:

    【解决方案2】:

    为什么不试试 XML 或 JSON?创建 Serializable 类。

    喜欢

    public class Entries
    {
    [JsonMember]
     public string key{get;set;}
    [JsonMember]
    public string value{get;set;}
    }
    

    并使用它的集合来阅读。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      • 2012-03-25
      • 2016-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多