有5个名字和5个号码。 Giv名称需要编号。 更好的方法?
string name = "Mark";
int x;
if(name == "John")
{
x = 1;
}else if(name == "Jimy"){
x = 2;
}else if(name == "Mark"){
x = 3;
}.... etc
return x;
结果是x = 3.
答案 0 :(得分:1)
通常,如果您要将一个唯一的项目列表与其他项目相关联,则Dictionary
是一个很好的解决方案。字典中的每个项目都称为KeyValuePair
,由两部分组成:唯一的key
,在这种情况下是名称,以及与该键相关联的value
,在这种情况下是一个int。
对于您的示例,它看起来像:
// The part in parenthesis specifies that the keys will be
// case-insensitive when doing comparisons, so you can search
// for "john", "John", or "JOHN", and get the same value back
private static Dictionary<string, int> nameValues =
new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase)
{
{"John", 1},
{"Jimmy", 2},
{"Mark", 3}
};
检索名称的int值的方法可能如下所示:
private static int GetIntForName(string name)
{
var valueIfNotFound = -1;
return nameValues.ContainsKey(name) ? nameValues[name] : valueIfNotFound;
}