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

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

C# 清风 4250℃ 0评论
C#随机打乱List数组中项的顺序-第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数组中项的顺序

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

CAPTCHA Image
Reload Image
表情

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

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