바이트 배열에서 마지막 8 바이트를 읽어야합니다. 지금은 이렇게하고 있습니다.바이트 배열에서 마지막 바이트 가져 오기
last8 = data.Reverse().Take(8).Reverse();
더 좋은 방법이 있습니까?
바이트 배열에서 마지막 8 바이트를 읽어야합니다. 지금은 이렇게하고 있습니다.바이트 배열에서 마지막 바이트 가져 오기
last8 = data.Reverse().Take(8).Reverse();
더 좋은 방법이 있습니까?
예를 들어, 사용 Array.Copy :
byte[] data = ...;
byte[] last8 = new byte[8];
Array.Copy(data, data.Length-8, last8, 0, 8);
data.Skip(data.Count - 8)
(데이터가 이미 열거 된 경우 - 예 : Array
또는 List
)을 사용할 수도 있습니다. 이것에 대해
무엇 :
var last8 = data.Skip(data.Length - 8);
두 번 배열을 반전하는 단계를 절약 할 수.
Skip은 원하는 인덱스에 도달 할 때까지 전체 배열을 건너 뛸 필요가 있습니다. penartur의 의견이 맞다면, Reverse(). Take (8)는 8 개 항목을 넘어야합니다. 8이 일정하고 배열 크기가 커질 수 있기 때문에 후자가 더 바람직합니다. – Timo
어느 쪽이든 또는 Array.Copy' – leppie
복사 아마 역 동작이 크기에 따라 상당히 치명타가 될 수 있기 때문에, 사용하는 가장 좋은 방법입니다'사용할 수 있습니다; 특히 데이터가 큰 경우. –
더 나은 것을 의미합니까? 빨리? 좀 더 가독성? – zmbq