使用Linq搜索两个项目的组合

时间:2011-08-17 14:18:42

标签: c# .net linq

我之前使用以下代码来查找字符串中第一次出现的文本。

int index = myString.IndexOf(“AB”);

现在我将更改软件,以便查找List中第一次出现的两个字节。是否可以使用Linq?

修改

程序目的是通过串口进行通信。以前,程序使用字符串管理数据。但是处理字符串中的二进制数据很奇怪。所以我改变了程序,以便在List<byte>处理数据。

2 个答案:

答案 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>的对象,名为listbyte[],名为{{ 1}}。

bytes

三元表达式确保您没有ArrayOutOfBoundsException