Quantcast
Channel: Over It. » C#
Viewing all articles
Browse latest Browse all 5

My UnWordify Extension Method

$
0
0

Tim Barcz is looking for a solution to an interesting problem in his Coding Contest: Create a Programming Pearl post.

I decided to challenge myself by writing my solution as a single “line” of code:

public static class StringExtensions
{
    private static Dictionary<char, char> _charMap = new Dictionary<char, char>
    {
        { (char)8208,  (char)45 },
        { (char)8211,  (char)45 },
        { (char)8212,  (char)45 },
        { (char)8722,  (char)45 },
        { (char)173,   (char)45 },
        { (char)8209,  (char)45 },
        { (char)8259,  (char)45 },
        { (char)96,    (char)39 },
        { (char)8216,  (char)39 },
        { (char)8217,  (char)39 },
        { (char)8242,  (char)39 },
        { (char)769,   (char)39 },
        { (char)768,   (char)39 },
        { (char)8220,  (char)34 },
        { (char)8221,  (char)34 },
        { (char)8243,  (char)34 },
        { (char)12291, (char)34 },
        { (char)160,   (char)32 },
        { (char)8195,  (char)32 },
        { (char)8194,  (char)32 }
    };

    public static string UnWordify(this string value)
    {
        return new string((from c in value
                           select _charMap.ContainsKey(c) ? _charMap[c] : c)
                          .ToArray());
    }
}

OK, so I cheated and used a dictionary to create my map from the bad characters to the good ones, but the actual method is a single statement.


Viewing all articles
Browse latest Browse all 5

Trending Articles