Bir dizenin başına veri eklemek için sözdizimsel bir şeker var mı?+ = önekleme için + = eşdeğeri
cevap
Hemen kullanın:
x = "prefix" + x;
yapar hiçbir bileşik atama operatörü var.
Teşekkürler Jon (Tony). Aşağıdaki yorumlarınızı da dikkate aldım. –
sorry = "nope, " + sorry;
Bunlar herhangi bir birleştirme operatörü kullanmak zorunda kalmadan, ipler birleştirmek için kullanılabilir FCL gelen yöntemlerdir. + Ve + = operatörleri, dizeleri ve oluşturulan geçici dizeleri nedeniyle tekrar tekrar çağrıldığında (yani bir döngü) çok fazla bellek kullanmaya eğilimlidir. (Düzenleme: Açıklamalarda belirtildiği gibi, String.Format genellikle verimli bir çözüm değildir)
Daha çok sözdizimsel bir alternatif şekerden daha çok.
string full = String.Format("{0}{1}{2}", "prefix", "main string", "last string");
Düzenleme: Sadece iki için dizeleri: String.Concat üzerine
string result = string.Concat("prefix", "last part");
^Daha fazla bilgi.
public static class StringExtensions{
public static string Prefix(this string str, string prefix){
return prefix + str;
}
}
var newString = "Bean".Prefix("Mr. ");
O yine değil sözdizimsel şeker, ama kolay:
String.Format öğesini tekrar tekrar kullanmak aynı derecede sorunlu olur. String.Concat kullanımı String.Format kullanarak dizeleri birleştirmek için daha etkilidir. Bir döngüde birleştirme, String.Format değil, bir StringBuilder kullanılarak daha iyi olabilir. –
String.Format kullanarak bu yöntem çok verimsiz. CPU kullanımı çok daha kötü ve aynı zamanda RAM'i de boşa harcıyor. String.Concat yerine: string string = String.Concat ("prefix", "main string", "last string"). Ayrıca, String.Concat'ı bir döngüde oluşturduğunuz bir dize [] iletebilirsiniz (örneğin,
Teşekkürler çocuklar. Çok yararlı. –
Hep bir uzantısı yöntem yazabilirsiniz. Önceden önerilmiş olandan daha basit olmamakla birlikte.
Orada C# hiçbir = + operatörü, ama neyse ki OO burada kurtarmaya gelir: string.Insert hakkında daha fazla bilgi için
string value = "Jamie";
value = value.Insert(0, "Hi ");
: http://msdn.microsoft.com/en-us/library/system.string.insert.aspx
ben kabul edeceğini a = b + Burada en mantıklı cevap görünüyor. String.Insert'i kullanmaktan çok daha iyi okur.
Şerefe Nick. Sonunda String.Concat yöntemiyle gitmeye karar verdim. –
- 1. Değişken ataması önekleme, echo
- 2. ggplot için eğri() eşdeğeri
- 3. PHP için Autotest eşdeğeri?
- 4. Thunderbird için Firebug eşdeğeri
- 5. MongoDB için Kibana eşdeğeri
- 6. 'pat2cwav' için Python eşdeğeri
- 7. Javycript `Ruby`` için eşdeğeri` `gönder`
- 8. Kullanıcı eklemek için get_or_create eşdeğeri
- 9. XmlAttribute/XmlElement için JavaScript eşdeğeri
- 10. Arabirim için "hasOwnProperty()" eşdeğeri nedir?
- 11. Eclipse'de Java için NCrunch Eşdeğeri
- 12. Mac için CodeKit - Windows eşdeğeri?
- 13. Java/Android için TPL Eşdeğeri
- 14. SQL Server için Debug.Assert Eşdeğeri
- 15. SSE intrinsics için Neon eşdeğeri
- 16. NET'te MEF için Java eşdeğeri
- 17. Android: Dosyaları IC dizinden ayrı olarak RES dizininde önekleme standartları
- 18. NSMethodSignature & NSInvocation eşdeğeri eşdeğeri 2
- 19. JPA teke çok silme ve sıfırlama önekleme tuşu null
- 20. os.path eşdeğeri?
- 21. FileOutputStream eşdeğeri
- 22. phpMyAdmin eşdeğeri?
- 23. Haskell eşdeğeri?
- 24. MonoTouch.Dialog eşdeğeri?
- 25. GetWebResourceUrl eşdeğeri?
- 26. IsFinite() eşdeğeri
- 27. selenium.wait_for_condition eşdeğeri
- 28. Survfit eşdeğeri?
- 29. StyleCop eşdeğeri?
- 30. CountDownLatch eşdeğeri
Sadece = argümanları tersine çevrilmiş olarak arayamaz mısınız? C# ile aşina değilim ama bu Java'da çalışırdı. – I82Much
, ilk dizgiyi ikinciye ekler; Sonuç aynı dizgedir, ancak yanlış değişkeni –
@ l82Much: Kesinlikle şöyle bir şey yapmalısınız: s = "Prepend" + = s; – Lazarus