Viyi.Util/Collections/ListExtensions.cs
(完整代码) 1KBnamespace Viyi.Util.Collections;
public static class ListExtensions {
/// <summary>
/// 对列表内容进行洗牌
/// </summary>
/// <remarks>
/// 注意:该扩展直接对列表元素进行洗牌,不会产生新的列表对象。
/// </remarks>
public static List<T> Shuffle<T>(this List<T> source) {
var random = ViyiRandom.Create();
for (int i = source.Count - 1; i > 0; i--) {
var rIndex = random.Next(i + 1);
(source[i], source[rIndex]) = (source[rIndex], source[i]);
}
return source;
}
/// <summary>
/// 对数组内容进行洗牌
/// </summary>
/// <remarks>
/// 注意:该扩展直接对数组元素进行洗牌,不会产生新的数组对象。
/// </remarks>
public static T[] Shuffle<T>(this T[] source) {
var random = ViyiRandom.Create();
for (int i = source.Length - 1; i > 0; i--) {
var rIndex = random.Next(i + 1);
(source[i], source[rIndex]) = (source[rIndex], source[i]);
}
return source;
}
}
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
