StringBuilder.GetChunks Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bu StringBuilder örneğinden oluşturulan bir ReadOnlyMemory<Char>
temsil edilen karakter öbekleri arasında yineleme yapmak için kullanılabilecek bir nesne döndürür.
public:
System::Text::StringBuilder::ChunkEnumerator GetChunks();
public System.Text.StringBuilder.ChunkEnumerator GetChunks ();
member this.GetChunks : unit -> System.Text.StringBuilder.ChunkEnumerator
Public Function GetChunks () As StringBuilder.ChunkEnumerator
Döndürülenler
ReadOnlyMemory<Char>
içindeki öbekler için bir numaralandırıcı.
Açıklamalar
Bellek aralığındaki öbekleri aşağıdaki gibi bir kodla yineleyebilirsiniz:
foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
foreach(char ch in chunk.Span)
{ /* operations on ch */ }
Bu yöntemin amacı, sabitStringBuilderverilerini verimli bir şekilde ayıklamaktır. Öbek numaralandırması eksikken StringBuilder değiştirilirse sonuç tanımlanmamış olur. StringBuilder iş parçacığı açısından da güvenli değildir, bu nedenle eş zamanlı iş parçacıklarıyla üzerinde çalışma geçersizdir.
StringBuilder değiştirilirse döndürülen ReadOnlyMemory<T> öbeklerinin değişmeden kalacağı garanti edilemez, bu nedenle bunları daha sonra kullanmak üzere önbelleğe alma.
bir ReadOnlyMemory<T>ReadOnlySpan<T> oluşturmak (önceki örnekte ReadOnlyMemory<T>.Span yönteminde olduğu gibi) pahalıdır, bu nedenle iç içe geçmiş bir for
deyiminde kullanmanız gerekiyorsa span için yerel bir değişken oluşturun. Mesela:
foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
{
var span = chunk.Span;
for(int i = 0; i < span.Length; i++)
{
/* operations on span[i] */
}
}