如何检查列表是否包含字节数组?

mas*_*naz 2 c# arrays design-patterns contains

我有字节缓冲区:

byte[] buffer = new byte[3];
List<byte[]> list;
Run Code Online (Sandbox Code Playgroud)

现在我补充说:

 while ((count = reader.Read(buffer, 0, buffer.Length)) != 0)
 {       
      bool contains = l.Contains<byte[]>(buffer); //This is not working and checking only reference 

      if (!contains)                          
      {                          
        l.Add(new byte[] buffer[0],buffer[1],buffer[2]});              
      }                
  }
Run Code Online (Sandbox Code Playgroud)

如何检查列表是否包含字节数组wchich与缓冲区具有相同的值?

Ere*_*mez 5

您当前的版本无法正常工作,因为它会根据引用相等性进行检查.

您想要查明是否有任何列表元素包含相同的字节序列:

bool contains = list.Any(x => x.SequenceEqual(buffer));
Run Code Online (Sandbox Code Playgroud)