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)