我有一个文本框,我想用来检测某些数字(1 - 65),这些数字附加了一个值,用于对数值进行数学运算。
示例:当用户输入数字“50”时,我想将其与值4500(50,4500)相关联。
因此,对于每个数字1 - 65,我想分配一个特定值,然后当用户键入数字1 - 65时,程序将获取相关值并将其分配给变量,以便我可以进行数学运算。
int lvl50 = 4500;
lvl50 = clvl;
tolvl = clvl - currentexp;
int ttlvl = (tlvl / ptexp) +1;
我正在寻找类似的东西。
答案 0 :(得分:1)
我认为您可以使用Dictionary<int,int>
var values = new Dictionary<int,int> { { 1, 1000 }, { 50, 4500 } ... };
然后你可以得到一个数字的相应值
values[50] // returns 4500
用户输入:
var input = int.Parse(textBox1.Text);
var value = values[input];
或使用TryParse
和ContainsKey
方法来避免可能的异常
int input = -1;
if(int.TryParse(textBox1.Text, out input) && values.ContainsKey(input))
{
var value = values[input];
}
答案 1 :(得分:0)
我能想到的一种方法是使用在System.Collections.Generic下找到的Dictionary<TKey, TValue>
;
values.Add(50,4500);:
var values = new Dictionary<int, int>();
values.Add(50, 4500);
// ... etc
答案 2 :(得分:0)
创建公式/函数: 如果数字1-65值具有任何公式,则可以使用创建一个方法来实现该公式值以便使用它。
示例:强>
public static int myFormula(int number)
{
return number * 90;
}
<强>词典:强>
如果以下数字匹配的值没有任何可见的公式,您可以使用Dictionary<int, int>
将它们与特定值匹配。
示例:强>
var myDic = Dictionary<int, int>() {
new { 1, 1 },
new { 50, 4500 },
};
答案 3 :(得分:0)
从你的代码片段中,它看起来(对我而言)就像你可能正在根据键计算字典中的值。您可以在单独的方法中放置用于计算值的逻辑:
private int CalculateValue(int x)
{
// calculate value and return it
}
然后为特定范围的数字创建一个字典,如下所示:
var dict = Enumerable.Range(1, 65).ToDictionary(x => x, CalculateValue);
要使用字典中的元素,只需使用键引用它:
var matchingValue = dict[50]; // Lookup key 50
如果密钥可能不存在,您可以测试它:
var value = dict.ContainsKey(72) ? dict[72] : -1; // Assign some default value
答案 4 :(得分:0)
使用类似其他答案建议的字典对您有用,但如果您的数字1-65没有间隙,您可以使用列表(甚至是简单的数组)。列表的索引将是您的输入。这比字典更容易,也更有效率。
var values = new List<int> { 1000 , 4500 };
然后您可以获得相应的用户输入值:
int input, value;
if(int.TryParse(textBox1.Text, out input)){
if(values.Contains(input){
value = values[input];
}
}