:-) kesin en zarif çalışır, ancak
public static string RemoveAllButFirst(string s, string stuffToRemove)
{
// Check if the stuff to replace exists and if not, return the original string
var locationOfStuff = s.IndexOf(stuffToRemove);
if (locationOfStuff < 0)
{
return s;
}
// Calculate where to pull the first string from and then replace the rest of the string
var splitLocation = locationOfStuff + stuffToRemove.Length;
return s.Substring(0, splitLocation) + (s.Substring(splitLocation)).Replace(stuffToRemove,"");
}
sadece kullanarak diyebiliriz:
sadece (
String.Replace()
kullanarak) ikinci bölümünden eşleşmeleri kaldıracak ve için (
String.Split()
yöntemiyle)
var output = RemoveAllButFirst(input,",");
bir güzel yaklaşım aslında biraz daha temiz bu ele bir uzantısı yöntemi bina içerebilir:
var output = input.RemoveAllButFirst(",");
yapabilirsiniz see a working example of it here: aracılığıyla aranmak
public static class StringExtensions
{
public static string RemoveAllButFirst(this string s, string stuffToRemove)
{
// Check if the stuff to replace exists and if not, return the
// original string
var locationOfStuff = s.IndexOf(stuffToRemove);
if (locationOfStuff < 0)
{
return s;
}
// Calculate where to pull the first string from and then replace the rest of the string
var splitLocation = locationOfStuff + stuffToRemove.Length;
return s.Substring(0, splitLocation) + (s.Substring(splitLocation)).Replace(stuffToRemove,"");
}
}
.
oldukça zarif LINQ birini :) – Rawling
@Rawling derim: ben bunu sevmiyorum neden (i LINQ seviyorum bile) yorum yapmak benim cevap düzenlenebilir. –
LINQ ifadenizi gerçekten çok beğendim, ancak henüz bahsettiğiniz yan etkileri anlamıyorum. Orada ne olmasını bekliyorsun? –