在c#

时间:2015-06-22 08:23:28

标签: c#

我已输入“Volvo-2.0”,“Volvo-1.8”,“Ford-BMax”,我想创建一个查找表,如果“Volvo-2-0”或“Volvo”将返回“Volvo”如果输入“Ford-BMax”,则输入-1.8“并同样返回”Ford“。

如何在我的模型中创建查找? 我目前正在使用选择列表,但由于我不想显示选择列表,我应该在模型中使用哪些其他替代方法进行查找?

public SelectList car = new SelectList(new List<object>{
                              new {text="Volvo-2.0", value="Volvo"},
                              new {text="Volvo-1.8", value="Volvo"},
                              new {text="Ford-BMax", value="Ford"}},text,value}

3 个答案:

答案 0 :(得分:3)

您应该使用Dictionary,因为它非常快:

Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("Volvo-1.8", "Volvo");
dict.Add("Volvo-2.0", "Volvo");
dict.Add("Ford-BMax", "Ford");

string brand = dict["Volvo-1.8"];

有关详细信息,请查看here

答案 1 :(得分:1)

词典&LT; T&GT;正如其他答案所说的那样,会很快。

C#有一个简写来填充数据:

  Dictionary<string, string> dict = new Dictionary<string, string>()
  {
      { "Volvo-1.8", "Volvo" },
      { "Volvo-2.0", "Volvo" },
      { "Ford-BMax", "Ford" },
  };

答案 2 :(得分:1)

我会使用Dictionary<,>(就像king.code所说)但我会改用TryGetValue()方法:

Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("Volvo-1.8", "Volvo");
dict.Add("Volvo-2.0", "Volvo");
dict.Add("Ford-BMax", "Ford");



string value;

if(dict.TryGetValue("Volvo-1.8", out value))
{
    Console.WriteLine("Found: " + value);
}

TryGetValue()更安全,并且避免了2次查找(如果您使用dict.Contains("Volvo-1.8")然后使用dict["Volvo-1.8"]。)

相关问题