我制作的Xamarin应用程序的滑块介于1-100之间。我希望它是这样的,当滑块处于一定数量时,输出将执行此操作valueLabel.Text = output;
I.e。它将显示输出变量的内容。
output = p1 + p11 + p2
Random r = new Random();
int countLower = r.Next(lower.Count);//I have a list called lower, im getting random values from it
int countLower1 = r.Next(lower.Count);
var p1 = lower[countLower];
var p11 = lower[countLower1];
例如,如果滑块(var cat)的值为5,我希望输出有5个东西(countLower + countLower1 + countLower2 + countLower3 + countLower4)但我不知道如何自动创建这个代码基于滑块号。我不想硬编码每种可能性,有什么办法吗?
我正在获取滑块值:
public void Slider_ValueChanged(object sender, ValueChangedEventArgs e)
{
var newStep = Math.Round(e.NewValue/step);
var cat =newStep.ToString();
label.Text = cat;
}
答案 0 :(得分:1)
试试这个:
int output = Enumerable.Range(0, newStep).Select(x => lower[r.Next(lower.Count)]).Sum();
答案 1 :(得分:0)
这还没有经过测试,但我们的想法是,对于滑块上的每个移动,您生成了N
个随机数,直到滑块值,然后使用String.Join()将它们全部组合在一起。
public void Slider_ValueChanged(object sender, ValueChangedEventArgs e)
{
var things = new List<int>();
var newStep = Math.Round(e.NewValue/step);
Random r = new Random();
for (var i = 0; i < newStep; i++) {
things.Add(r.Next(i);
}
var cat = string.Join(",", things);
label.Text = cat;
}