在要求输入邮箱的文本域,请填写真实的邮件地址。非真实邮件地址,将收不到回复信息。

C#随机打乱List数组中项的顺序

C# 清风 114℃ 0评论

突然有一个需求,要求数组中数据在返回前进行随机打乱,于是就记录下来。

方法一


        public static void ListRandom<T>(List<T> sources)
        {
            Random rd = new Random();
            int index = 0;
            T temp;
            for (int i = 0; i < sources.Count; i++)
            {
                index = rd.Next(0, sources.Count - 1);
                if (index != i)
                {
                    temp = sources[i];
                    sources[i] = sources[index];
                    sources[index] = temp;
                }
            }
        }

方法二


        public static List<T> ListRandom<T>(List<T> sources)
        {
            var random = new Random();
            var resultList = new List<T>();
            foreach (var item in sources)
            {
                resultList.Insert(random.Next(resultList.Count), item);
            }
            return resultList;
        }

以上两个方法均可以简单的实现需求,但是方法一的性能要优于方法二。

转载请注明:清风博客 » C#随机打乱List数组中项的顺序

喜欢 (1)or分享 (0)
支付宝扫码打赏 微信打赏
发表我的评论
取消评论

CAPTCHA Image
Reload Image
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址