C# 'daki bir string
baytında ne kadar süre olduğunu bilen var mı?Dizenin boyutunu bayt cinsinden nasıl öğrenebilirim?
cevap
Sen System.Text.Encoding
sınıfını kullanarak bayt başına bir karakter almak için ASCII gibi kodlamasını kullanabilirsiniz.
veya MSDN itibaren bu
System.Text.ASCIIEncoding.Unicode.GetByteCount(string);
System.Text.ASCIIEncoding.ASCII.GetByteCount(string);
Aptal soru, ancak dizideki veriler bir 3. parti dosyadan geliyorsa Unicode veya ASCII sınıfını kullanıp kullanmayacağımızı nasıl bileceğiz? –
@MatthewLock UTF16 (veya majidgeek'in "Length * sizeof (Char)" işlevini kullanmalısınız; bu, her bir "Char" UTF16/2 bayt olduğundan, aynı sonucu vermesi gerekir), aynı sayıda bayt dizi. Gerçekte, tam sayıdaki nesnenin, dahili karakter dizisindeki sadece bayt sayısından ziyade tam olarak olmasını istiyorsanız, [daha genel bir yöntem] düşünebilirsiniz (http://stackoverflow.com/questions/1128315/ bulmak-size-of-the nesne, örneğin in-bayt-c-keskin). – Bob
System.Text.ASCIIEncoding.Unicode.GetByteCount(yourString);
Ya
System.Text.ASCIIEncoding.ASCII.GetByteCount(yourString);
deneyin:
A
String
nesne bir dize temsilSystem.Char
nesneleri sıralı topluluğudur.
Yani bunun kullanabilirsiniz:
var howManyBytes = yourString.Length * sizeof(Char);
Veri yapısı temellerini anlayabildiğim kadarıyla en çok 'pined' olarak değerlendirmek için – LoneXcoder
ile karşılaştırınız. Uzunluk üyesinin büyüklüğünü dikkate almayı unutmayın. int howManyBytes = yourString.Length * sizeof (Char) + sizeof (int); –
Dize uzunluğum Int'ten büyükse ne olur? –
Kontrol dışarı [Bu cevap] (http://stackoverflow.com/questions/472906/net-string-to-byte-array-c-sharp). – dasblinkenlight
Bir "string" nesnesinin ne kadar bellek içerdiğini veya bir dizinin temsilinin bir dosyaya yazıldığında veya ağ üzerinden gönderildiğinde (yani kodlanmış) kaç bayt olduğunu soruyorsunuz, çünkü bunlar tamamen farklı iki soru. majidgeek neredeyse birincisini cevaplarken diya, ikincisini (en azından iki ortak kodlamada) yanıtladı. –
olası bir kopyası [ne kadar bayt alacak?] (Http://stackoverflow.com/questions/3967411/how-much-bytes-will-take) – nawfal