我是C#的新手,我想在我的字符串列表中乱窜,所以没有输入两次值,所有值都被洗牌。 到目前为止,我有这个代码
private List<string> myCards = List<string>
{
"AC", "AS", "AD", "AH",
"2C", "2S", "2D", "2H",
"3C", "3S", "3D", "3H",
"4C", "4S", "4D", "4H",
"5C", "5S", "5D", "5H",
"6C", "6S", "6D", "6H",
"7C", "7S", "7D", "7H",
"8C", "8S", "8D", "8H",
"9C", "9S", "9D", "9H",
"10C", "10S", "10D", "10H",
"KC", "KS", "KD", "KH",
"QC", "QS", "QD", "QH",
"JC", "JS", "JD", "JH"
};
干杯
答案 0 :(得分:1)
你想删除重复项并随机播放吗?
从NuGet *安装Extended Random,导入ExtendedRandom
和System.Linq
,然后:
ExtendedRandom.Random.Shuffle(myCards.Distinct())
*我是NuGet包的维护者
答案 1 :(得分:1)
你可以做一些简单的事情,比如使用linq随机排序。
var shuffled = myCards.Distinct().OrderBy(x => System.Guid.NewGuid().ToString()).ToList();
将其作为方法实现也很简单。
public List<string> Shuffle(List<string> items)
{
return items.Distinct().OrderBy(x => System.Guid.NewGuid().ToString()).ToList();
}