【发布时间】:2018-03-30 07:23:40
【问题描述】:
我有一个颜色列表,我想至少稍微混合一下。
我创建一个列表使用
List<Color> colors = new List<Color> ();
colors.Add(Color.Black);
colors.Add(Color.White);
colors.Add(Color.Red);
但是没有.Shuffle 我注意到.Sort 但我认为这不是我需要的。我搜索了一段时间,但如果有更简单的方法,我发现的所有方法和其他问题对于如此简单的任务似乎都过于复杂了。
我尝试过使用
List<Color> colorList = new List<Color>();
public void SetupColors()
{
List<Color> colors = new List<Color> ();
colors.Add(Color.BLACK);
colors.Add(Color.WHITE);
colors.Add(Color.RED);
Random random = new Random();
int n = colors.Count;
for (int i = colors.Count; i > 1; i--)
{
int rnd = random.Next(i + 1);
var value = colors[rnd];
colors[rnd] = colors[i];
colors[i] = value;
}
colorList = colors;
}
public List<Message> getMessages()
{
List<Message> items = new List<Message>
{
new Message
{
. . .
Background = colorList[0]
},
new Message
{
. . .
Background = colorList[1]
}
};
return items;
}
但我在colorList[0] 和colorList[1] 不断收到IndexBound 错误
【问题讨论】:
-
看看Fisher-Yates shuffle算法
-
我看到了“重复”的帖子,但答案比他们需要的更复杂,必须有一种更简单的方法来洗牌
标签: c# xamarin xamarin.forms