c# - 寻找一种更灵活的方法将定界字符串转换为 StringDictionary

标签 c#

我创建了以下内容以将一些数据公开为正则表达式匹配字符串和 StringDictionary。感觉我可以用更少的行数使用 LINQ 来做到这一点。

private const string STREETTYPES = @"ALY|Alley|AVE|Avenue|BLVD|Boulevard|CIR|Circle|CT|Court|CTR|Center|DR|Drive|EXPY|Expressway|FWY|Freeway|HALL|Hall|HWY|Highway|JCT|Junction|LN|Lane|LP|Loop|PIKE|Pike|PKWY|Parkway|PL|Place|RD|Road|ST|Street|TER|Terrace|TPKE|Turnpike|TRL|Trail|WAY|Way";

  private static StringDictionary streetTypes = null;
  public static StringDictionary StreetTypes
  {
    get
    {
      if (streetTypes != null) return streetTypes;
      streetTypes = new StringDictionary();
      var streetArray = STREETTYPES.Split(PIPE);
      for (int i = 0; i < streetArray.Length-1; i = i+2)
      {
        streetTypes.Add(streetArray[i], streetArray[i + 1]);
      }
      return streetTypes;
    }
  }

最佳答案

怎么样:

private static readonly StringDictionary streetTypes = new StringDictionary
{
    {"ALY","Alley"},{"AVE","Avenue"},{"ALY","Alley"},{"BLVD","Boulevard"},{"CIR","Circle"},
    {"CT","Court"},{"CTR","Center"},{"DR","Drive"},{"EXPY","Expressway"},{"FWY","Freeway"},
    {"HALL","Hall"},{"HWY","Highway"},{"JCT","Junction"},{"LN","Lane"},{"LP","Loop"},
    ...        
};

关于c# - 寻找一种更灵活的方法将定界字符串转换为 StringDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7733208/

相关文章:

c# - 数据绑定(bind),如 Unity 的行为

C#:Cdecl DllExport,参数中带有指向类实例的指针

c# - 协变/逆变 : how to make the following code compile

c# - 如何从 C# 调用 C++ API

c# - C#中使用is关键字声明变量内联

c# - 在不使用 .Add() 的情况下通过索引动态地将项目添加到 List<int>

c# - DateTime.Now 相差一毫秒

c# - fmod Sound.setMusicSpeed 返回不支持的格式错误

c# - 伪多重继承

c# - 根据 WPF 中的值设置背景