在字节[]数组中查找第一个特定字节c#

div*_*nci 10 c# search design-patterns bytearray

我有一个字节数组,希望找到特定字节的第一次出现(如果有的话).

你能帮助我一个漂亮,优雅和有效的方法吗?

 /// Summary
/// Finds the first occurance of a specific byte in a byte array.
/// If not found, returns -1.
public int GetFirstOccurance(byte byteToFind, byte[] byteArray)
{

}
Run Code Online (Sandbox Code Playgroud)

Phi*_*ert 26

public static int GetFirstOccurance(byte byteToFind, byte[] byteArray)
{
   return Array.IndexOf(byteArray,byteToFind);
}
Run Code Online (Sandbox Code Playgroud)

如果没有找到它将返回-1

或者Sam指出,一种扩展方法:

public static int GetFirstOccurance(this byte[] byteArray, byte byteToFind)
{
   return Array.IndexOf(byteArray,byteToFind);
}
Run Code Online (Sandbox Code Playgroud)

或者使它通用:

public static int GetFirstOccurance<T>(this T[] array, T element)
{
   return Array.IndexOf(array,element);
}
Run Code Online (Sandbox Code Playgroud)

然后你可以说:

int firstIndex = byteArray.GetFirstOccurance(byteValue);
Run Code Online (Sandbox Code Playgroud)