C#数组每间隔3个取一个数组成数组
时间: 2023-06-02 10:08:08 浏览: 125
C是一种高级编程语言,广泛用于操作系统、游戏、数据库、网络和嵌入式系统等。它由美国贝尔实验室的Dennis Ritchie于20世纪70年代所创造。C具有高效、灵活、可移植性好等特点,是许多其他编程语言的基础。C也是学习计算机科学和软件开发的重要语言之一。
相关问题
c# 一个长数组,如何每隔3个数删除一个
可以使用 `for` 循环遍历数组,每隔3个数删除一个。具体实现可以参考以下代码:
```csharp
int[] arr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
int index = 2; // 记录需要删除的元素下标
for (int i = 0; i < arr.Length; i++)
{
if (i == index)
{
// 删除元素
arr = arr.Where((val, idx) => idx != index).ToArray();
index += 2; // 更新需要删除的元素下标
}
if (index >= arr.Length)
{
break; // 如果需要删除的元素下标已经超出了数组长度,则退出循环
}
}
// 输出结果
foreach (int num in arr)
{
Console.Write(num + " ");
}
```
这段代码中,我们先定义一个整型数组 `arr`,然后定义一个变量 `index` 初始化为 2,用来记录需要删除的元素下标。接着使用 `for` 循环遍历数组,如果当前下标等于 `index`,则使用 LINQ 的 `Where` 方法删除该元素,并更新 `index` 的值,使其指向下一个需要删除的元素。最后,再使用 `foreach` 循环输出结果。
需要注意的是,在删除元素之后,数组的长度会发生变化,因此需要使用 `arr.Length` 来判断是否需要退出循环。
c# 数组里随机取多个数不重复的
在 C# 中实现从数组中随机取多个数不重复可以使用洗牌算法(Fisher-Yates Shuffle Algorithm)。以下是一个简单的实现:
```csharp
public static T[] Shuffle<T>(T[] array, int count)
{
var random = new Random();
var result = new T[count];
Array.Copy(array, result, count);
for (int i = count; i < array.Length; i++)
{
var j = random.Next(i + 1);
if (j < count)
{
result[j] = array[i];
}
}
return result;
}
```
在上面的代码中,`Shuffle`方法接受两个参数:要随机取数的数组`array`和要取的数的个数`count`。该方法返回一个新的数组,包含从`array`数组中随机取的`count`个不重复的元素。
使用示例:
```csharp
var array = new[] { 1, 2, 3, 4, 5 };
var result = Shuffle(array, 3);
foreach (var item in result)
{
Console.WriteLine(item);
}
```
上面的代码中,`Shuffle`方法将从`array`数组中随机取3个不重复的元素,并将它们存储在`result`数组中。具体的实现方法是,首先将前`count`个元素复制到`result`数组中,然后从`count`到数组末尾进行遍历,对于每个元素,随机生成一个小于等于当前下标的随机数`j`,如果`j`小于`count`,则将该元素存储在`result`数组中的第`j`个位置。这样就可以保证取出的元素不重复,并且随机性较好。