C#如何筛选出两个数组中的不同的元素
时间: 2023-08-13 14:07:33 浏览: 174
你可以使用 LINQ 中的 Except 方法来获取两个数组中不同的元素。
例如,假设有两个整数数组 a 和 b,你可以使用以下代码获取 a 中与 b 不同的元素:
```csharp
int[] a = { 1, 2, 3, 4, 5 };
int[] b = { 3, 4, 5, 6, 7 };
var differentElements = a.Except(b);
foreach (var element in differentElements)
{
Console.WriteLine(element); // 输出 1 和 2
}
```
在上面的代码中,使用 Except 方法从 a 数组中获取与 b 数组不同的元素,然后使用 foreach 循环遍历并输出这些元素。
相关问题
c#删除数组中的多个元素
在 C# 中,可以使用以下两个方法来删除数组中的多个元素:
1. 使用 Linq 的 Where 方法和 ToArray 方法:
```csharp
int[] arr = { 1, 2, 3, 4, 5 };
int[] indexesToRemove = { 1, 3 };
arr = arr.Where((val, index) => !indexesToRemove.Contains(index)).ToArray();
```
这里,我们首先定义了一个整型数组 `arr`,并且定义了要删除的元素的索引位置数组 `indexesToRemove`。接着,我们使用 Linq 的 `Where` 方法来筛选出不包含要删除元素索引位置的元素,并将结果转换成数组。
2. 使用 List 的 RemoveAt 方法:
```csharp
int[] arr = { 1, 2, 3, 4, 5 };
int[] indexesToRemove = { 1, 3 };
List<int> list = arr.ToList();
foreach (int index in indexesToRemove.OrderByDescending(x => x))
{
list.RemoveAt(index);
}
arr = list.ToArray();
```
这里,我们首先将整型数组 `arr` 转换成 List<int> 类型的 `list`。然后,我们使用循环遍历要删除的元素的索引位置数组,并且使用 List 的 `RemoveAt` 方法来删除对应的元素。最后,我们再将 List 转换回整型数组类型。需要注意的是,我们使用 `OrderByDescending` 方法来确保删除元素的顺序不会影响其他元素的索引位置。
c#判断两个字节数组是否相等
在 C# 中可以使用 SequenceEqual() 方法来判断两个字节数组是否相等。示例如下:
```csharp
byte[] arr1 = new byte[] { 0x01, 0x02, 0x03 };
byte[] arr2 = new byte[] { 0x01, 0x02, 0x03 };
bool isEqual = arr1.SequenceEqual(arr2);
Console.WriteLine(isEqual); // 输出 true
```
如果两个字节数组的元素完全相同,则该方法返回 true,否则返回 false。注意,SequenceEqual() 方法是 LINQ 扩展方法,需要引用 System.Linq 命名空间。