C# 在C中的非交错2D字节数组中查找元素#

C# 在C中的非交错2D字节数组中查找元素#,c#,arrays,.net,linq,multidimensional-array,C#,Arrays,.net,Linq,Multidimensional Array,我创建了一个包含3行和3列(顺序为3*3矩阵)的2D字节数组,并且它不是锯齿状数组 var arr = new byte[3,3]; 但是现在我必须知道数组中是否存在特定的元素。我尝试过许多方法,但它们适用于一维数组或锯齿数组。 你能想出一种方法来搜索整个二维数组中的特定元素吗?有几种方法: 传统的嵌套foreach,每个维度一个 简单foreach,数组是可枚举的 林克 嵌套foreach 简单foreach 每个数组都是可枚举的。如果您对元素的索引不感兴趣: foreach (var

我创建了一个包含3行和3列(顺序为3*3矩阵)的2D字节数组,并且它不是锯齿状数组

var arr = new byte[3,3];
但是现在我必须知道数组中是否存在特定的元素。我尝试过许多方法,但它们适用于一维数组或锯齿数组。
你能想出一种方法来搜索整个二维数组中的特定元素吗?

有几种方法:

  • 传统的嵌套foreach,每个维度一个
  • 简单foreach,数组是可枚举的
  • 林克
嵌套foreach 简单foreach 每个数组都是可枚举的。如果您对元素的索引不感兴趣:

foreach (var value in values)
{
    valueFound = value == valueToFind;
    if (valueFound) break;
}
林克 最短方法:使用LINQ:

using System.Linq;
bool valueFound = values.Any(value => value == valueToFind)

其作用:获取可枚举的值序列,并从第一个值开始枚举。检查每个值是否等于valueToFind。找到一个就停下来。如果找到值,则返回值为true。

有几种方法:

  • 传统的嵌套foreach,每个维度一个
  • 简单foreach,数组是可枚举的
  • 林克
嵌套foreach 简单foreach 每个数组都是可枚举的。如果您对元素的索引不感兴趣:

foreach (var value in values)
{
    valueFound = value == valueToFind;
    if (valueFound) break;
}
林克 最短方法:使用LINQ:

using System.Linq;
bool valueFound = values.Any(value => value == valueToFind)

其作用:获取可枚举的值序列,并从第一个值开始枚举。检查每个值是否等于valueToFind。找到一个就停下来。如果找到一个值,则返回值为true。

您是否对(int i=0;i<3;i++){for(int j=0;i<3;j++){if(arr[i,j]==x){}}}字节数组中的每个元素(或任何其他值类型)都存在。如果您想查看特定元素(例如,
i,j
),那么您只需查看
arr[i,j]
。你在问什么?您是否要查找第一个元素的索引,其值为,例如
0xab
?Mus t be dupe where.you是否尝试了此
(int i=0;i<3;i++){for(int j=0;i<3;j++){if(arr[i,j]==x){}}
字节数组中的每个元素(或任何其他值类型)存在。如果您想查看特定元素(例如,
i,j
),那么您只需查看
arr[i,j]
。你在问什么?是否要查找其值为的第一个元素的索引,例如
0xab
?在某个地方不可能是重复的。