Сравнение байтовых массивов в LINQ с объектами - PullRequest
3 голосов
/ 19 января 2011

В запросе LINQ:

from c in results
where c.ByteField == byteData
select c;

Я не получаю результатов от этого, хотя байты одинаковы:

byte [5] = 49, 50, 51,52, 53

Как правильно сравнить байты в LINQ to Objects?

Спасибо.

1 Ответ

10 голосов
/ 19 января 2011

В LINQ to Objects (как подсказывает ваш пост в заголовке) вы можете использовать IEnumerable.SequenceEqual():

from c in results
where c.ByteField.SequenceEqual(byteData)
select c;

К сожалению, похоже, что вы используете LINQ to SQL (или Entity Framework), основываясь на использовании context. Не существует SQL-эквивалента SequenceEqual, поэтому в этом случае это не сработает.

...