Jag hade nog gjort såhär. Man kan antagligen få det mycket snabbare med for satser, men detta är en ganska snabb och enkel lösning.
Ett tips är ju att lägga det som en extension.
Det finns nog snabbare lösningar rent prestandamässigt.
public string[] SplitString(string value, int splitSize)
{
Regex splitRegex = new Regex(string.Format(".{,{0}}", splitSize.ToString());
MatchCollection matches = splitRegex.Matches(stringValue);
string[] stringArray = new string[matches.Count];
for(int i=0; i< matches.Count; i++)
{
stringArray[i] = matches[i].Value;
}
return stringArray;
}
public static IEnumerable<string> Chunkify(this string self, int chunkSize)
{
for (int i = 0; i < self.Length; i += chunkSize)
yield return self.Substring(i, Math.Min(chunkSize, self.Length - i));
}
// ...
foreach (string s in "abcdefghiklmn".Chunkify(4)) Console.Writeline(s);
public static IEnumerable<string> Chunkify(this string self, int chunkSize)
{
for (int i = 0; i < self.Length; i += chunkSize)
yield return self.Substring(i, Math.Min(chunkSize, self.Length - i));
}
// ...
foreach (string s in "abcdefghiklmn".Chunkify(4)) Console.Writeline(s);
Segern tilldelas spango. Arrangören tackar alla deltagare för dess medverkan till att göra denna fråga till THE MOST BRUTAL QUESTION THIS DAY AND MAYBE EVEN THE FOLLOWING DAY.
Mm o man kan använda arv oxå ;-) till allt.. för att det finns där..
Ja, jag tänkte på det till en början, men sen kom jag på att String är ju sealed x( så jag fick nöja mig med det Näst Bästa. (Eller Second Most Brutal Solution för att fortsätta i trådskaparens föredömliga anda (y) )
Ja, jag tänkte på det till en början, men sen kom jag på att String är ju sealed x( så jag fick nöja mig med det Näst Bästa. (Eller Second Most Brutal Solution för att fortsätta i trådskaparens föredömliga anda (y) )
Inget fel på extensionmetoden så länge du vet att du kommer använda den mer än en gång på andra ställen.
class Program
{
static void Main(string[] args)
{
string customerEmailAddress = "test@test.com";
if (customerEmailAddress.IsValidEmailAddress())
{
// Do Something...
}
}
}
public static class Extensions
{
public static bool IsValidEmailAddress(this string s)
{
Regex regex = new Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$");
return regex.IsMatch(s);
}
}
Här måste jag leka doktor o lägga mig i lite :-/
Gör helst inte på detta sätt för du binder en unik funktion till hela stringtypen. Ex alla string som finns i det scope där denna extensions används kommer helt plötsligt ha en metod som kollar e-mail.
Detta är att missbruka extensions... Här är ett typiskt fall då man bör undvika extension och lägga dem i en validerator klass istället.
typ:
Validator.IsValidEmail(email)
Detta är en typiskt regel för Singel responsability principle och single responsability rule.
Nu googlade jag bara fram ett exempel för att snabbt visa inspiro syntaxen för extensions. Jag var helt enkelt för lat för att skriva ihop något själv. Tanken med exemplet var alltså inte att visa "best practice" gällande hur man bör använda extensions. Ibland får man ta ett exempel för vad det är helt enkelt.
Bra påpekande hur som helst och jag delar din åsikt helt och hållet.
Nu googlade jag bara fram ett exempel för att snabbt visa inspiro syntaxen för extensions. Jag var helt enkelt för lat för att skriva ihop något själv. Tanken med exemplet var alltså inte att visa "best practice" gällande hur man bör använda extensions. Ibland får man ta ett exempel för vad det är helt enkelt.
Bra påpekande hur som helst och jag delar din åsikt helt och hållet.
:-)
Det är oftast det som är så dumt med fel exempel, jag är inte bäst på visa bra exempel alltid heller, problemet är att de som ser dem kan tro man skall göra så...
256 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849