特定のIDのデータベースからレコードを取得しようとしている次のlinqクエリがあります。次に、レコードを調べて、1 バイトのビットが設定されているレコードを見つけようとします。しかし、「演算子 & はバイトまたはブール値に適用できません」というエラーが表示されます。
Byte firstPacketMask = Convert.ToByte("00001000", 2);
using (aContext _db = new aContext())
{
var query = (from data in _db.Datas
where data.id == id
orderby data.ServerTime descending //put the last cycle on top of list
select data).ToList();
var mid = query.Where(x => x.Data[0] & firstPacketMask == 16)
.FirstOrDefault();
}
ここで Data はバイト配列です。Data の最初のバイトにはビット フィールドがあります。ビット 4 が設定されているかどうかを確認しようとしているので、そのパケットを選択します。