私はC#で解決した問題の解決に取り組んでいますが、今では私のコードをF#に移植しています。私はバイト配列を持っているので、この配列で2つの値(x、y)を検索する必要があります。 x
が見つかったら、それをチェックする必要があります。y
が次のインデックスにある場合は一致しています。 y
が次の索引にない場合、検索は続行されます。この問題をどのように解決すればよいですか? y
が次のインデックスにないときに検索を続行する方法がわからないので、私はArray.findIndex
を使用しようとしましたが、成功しませんでした。配列を介して2つの値を次に検索する
EDIT:
public void GetValue(byte[] data)
{
byte[] temp = new byte[4];
for (int i = 0; i < data.Length; i++)
{
if (data[i] == Adress[0] && data[i + 1] == Adress[1])
{
for (int j = 0; j < temp.Length; j++)
{
temp[j] = data[j + i + 2];
}
Value = BitConverter.ToInt32(temp, 0) * 0.01;
break;
}
}
完全な回答を書く時間がありませんが、['Seq.pairwise'](https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/seq.pairwise%5B% 27t%5D機能 - %5Bfシャープ%5D)機能。 'Array'モジュールには' Array.pairwise'という対応する関数がありますが、オンラインドキュメントはまだ更新されていません。これは配列 '[| 1; 2; 3; 4 |] 'を' [| (1,2); (2,3); (3,4)|] '。次に、 'findIndex'または' tryFindIndex'を実行して、新しく生成された配列のタプル内の2つの同一の数字がどこにあるかを調べることができます。 – rmunn
あなたはC#コードを投稿することができますか? – s952163
私はペアリングについて考えましたが、私の場合はこれがインデックス0と1にある場合にのみ正しいです。インデックス1のxsとインデックス2のyが一致すると一致しません。 –