我之前使用以下代码来查找字符串中第一次出现的文本。
int index = myString.IndexOf(“AB”);
现在我将更改软件,以便查找List中第一次出现的两个字节。是否可以使用Linq?
修改
程序目的是通过串口进行通信。以前,程序使用字符串管理数据。但是处理字符串中的二进制数据很奇怪。所以我改变了程序,以便在List<byte>
处理数据。
答案 0 :(得分:2)
Pure LINQ:
var arr = new byte[] { 1, 2, 3, 4, 5, 6 };
var res = arr.Zip(arr.Skip(1), (a, b) => new { a, b }).Select((x, i) => new { x, i })
.FirstOrDefault(v => v.x.a == 3 && v.x.b == 4);
if (res != null)
{
Console.WriteLine(res.i);
}
答案 1 :(得分:1)
鉴于你说你想要在列表中搜索字节,我假设你有一个List<byte>
的对象,名为list
,byte[]
,名为{{ 1}}。
bytes
三元表达式确保您没有ArrayOutOfBoundsException