ArraySegment<T> とMemory<T>の違いは何でしょうか?
基本的に同じ事が出来るように思うのですが、どういう使い分けをするのでしょうか?
C#
1var bytes = new byte[] { 0x01, 0x02, 0x03 }; 2var arraySegemtn = new ArraySegment<byte>(bytes); 3 4for(var i=0; i<arraySegemtn.Count; i++) 5{ 6 System.Diagnostics.Debug.WriteLine(arraySegemtn[i]); 7} 8var array2 = arraySegemtn.Slice(2, 1);
C#
1var bytes = new byte[] { 0x01, 0x02, 0x03 }; 2var memory = new Memory<byte>(bytes); 3for (var i = 0; i < memory.Length; i++) 4{ 5 System.Diagnostics.Debug.WriteLine(memory.Span[i]); 6} 7var memory2 = memory.Slice(2, 1);
追記
コメントでSpanも同時に質問した方が良いとのアドバイスを受けました。
確かに、Spanも同じ事が出来るようですが、これら3つはどういう使い分けをするのでしょうか。
C#
1var bytes = new byte[] { 0x01, 0x02, 0x03 }; 2var span = new Span<byte>(bytes); 3for (var i = 0; i < span.Length; i++) 4{ 5 System.Diagnostics.Debug.WriteLine(span[i]); 6} 7var span2= span.Slice(2, 1);
回答2件
あなたの回答
tips
プレビュー