是否有任何伪造方法可以根据 C# 中的输入字符为我提供美国的城市名称?

Is there any faker method which gives me the City Name of US based on the input character in C#?

我正在研究一些测试场景,我想要一种将字符作为输入的方法,returns 我是美国城市的名称,随机以该字符开头?是否有可用的 faker 方法,C# 的任何库?

谢谢

你需要两样东西:

  • 美国城市名称列表。
  • 一种称为“前缀树”或“trie”(发音为“try”)的数据结构。

前缀特里树将您正在做的事情(找到与第一个字母匹配的东西)概括为任意长的前缀(找到与前“n”个字符匹配的东西)。

一个 trie 将允许你输入“Sea”并看到像“Seattle”和“Seatac”这样的名字。

您可以从美国人口普查局找到城市列表。我没有 link,但如果你四处搜索,你可以找到一个。您可能必须处理数据才能获得所需的内容。

这里有一些关于尝试的数据:

https://en.wikipedia.org/wiki/Trie

但如果您搜索 Google Trie 或 Trie C#,您可以找到现有资源。

话虽这么说...如果您所需要的只是您提到的确切问题(键入一个字母,return 随机匹配),您可以只构建一个数组数组,然后从城市列表。

但是...在大多数用例中,trie 树更有用。

我会说...了解尝试,它们是一种很酷的数据结构。

然后,如果你真的只需要你提到的,就做一个数组数组(第一个数组按字母索引,第二个数组是一个字符串列表)。

但是学习尝试是完全值得的。

如果您真的想深入了解...尝试能够回答以下问题:

  1. 渐近地,在 trie 中查找项目与在由字符串键入的哈希 table 中查找项目相比如何?

  2. 这两者实际上有何不同,为什么?

项目 #1 需要对算法有一定的了解。

项目 #2 需要深入了解计算机体系结构。

无论如何...当有人说“这不是可以在这里回答的问题”时请忽略他们...

这实际上是一个问题,如果你坚持下去,可以教会你很多关于计算机工作原理的知识。虽然表面上看起来简单奇怪,“好像不是真题”

所以...这就是您问题的哲学答案。

具体问题的具体答案是:

  1. 获取美国城市列表。
  2. 填充数组数组。使用 cityName[0] - 'a' 作为外部数组的索引。
  3. 获取内部数组(从上面),并获取一个随机索引。

但这是愚蠢的答案...去了解尝试。

打蜡...打蜡