Вы можете сделать следующее.
var strArray = new string[]{"FA","6","52","4C","0","A4","FA","6","52","4C","0","A4","FA","6","52","4C","0","A4","FA","6","52","4C","0","A4","FA","6","52","4C","0","A4","FA","6","52","4C","0","A4","FA","6","52","4C","0","A4","FA","6"};
var searchArray = new string[]{"FA","6","52","4C","0","A4"};
var index = strArray.FindAllIndexOf("FA")
.Reverse()
.First(x=>strArray
.Skip(x)
.Take(searchArray.Count())
.SequenceEqual(searchArray));
var result = strArray.Skip(index).Take(searchArray.Count());
Где FindAllIndexOf определяется как
public static class Extension
{
public static int[] FindAllIndexOf<T>(this IEnumerable<T> values, T val)
{
return values.Select((b,i) => object.Equals(b, val) ? i : -1)
.Where(i => i != -1)
.ToArray();
}
}
Это даст вывод как
index : 36
result : FA,6,52,4C,0,A4