1

私はこのような構造体を持っています:

public struct Response
{
    public string Cmd;
}

また、主にこのバイト配列を持っています:

Decode(StringToByteArray("0100002402433131000000000000000311"));

そして、この関数内にデコード関数があり、Take(5) と Skip (3) を次のように実行します。

byte[] cmd = resp.Skip(5).Take(3).ToArray();
x.Cmd = Encoding.UTF8.GetString(cmd);

Take(3) または Skip (5) を使用する代わりに、Variable を割り当ててこれを自動的に計算できますか?

4

2 に答える 2

2

これがあなたの他の機能です:

public T[] SkipTake<T>(IEnumerable<T> items, int skipCount, int takeCount) {
    return items.Skip(skipCount).Take(takeCount).ToArray();
}

ジェネリックを使用しているので、それらについて調べます (http://msdn.microsoft.com/en-us/library/512aeb7t(v=vs.90).aspx)。

于 2012-12-19T04:36:47.587 に答える
1

個人的には、それを拡張メソッドにします (@siride と同じ考えですが、もう少し流暢です)。

例えば

public static class SkipTakeExtentions{
    public static T[] SkipTake<T>(this IEnumerable<T> items, int skipCount, int takeCount) {
        return items.Skip(skipCount).Take(takeCount).ToArray();
    }
}

利用方法:

thing.SkipTake(1,2);
于 2012-12-19T04:41:41.850 に答える