C#随机播放字符串列表

时间:2013-11-23 05:09:25

标签: c# arrays list shuffle

我是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"
};

干杯

2 个答案:

答案 0 :(得分:1)

你想删除重复项并随机播放吗?

从NuGet *安装Extended Random,导入ExtendedRandomSystem.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();
}