Michells Mesterværk

Extension method battle…hvem kan lave de fedeste ?

by Administrator 30. October 2009 13:03

ICoder (Jesper Jensen fra DGI) har været inde i en god rytme med hans blog, og hans sidste indlæg har givet en smule inspiration til en online blog battle. Hvem kan lave de fedeste extension methods ?

Reglerne er simple; lav en eller flere extesion methods til en eller flere typer under .NET frameworket og vind præmier som bla. denne T-shirt.

extensionchamp

For at deltage skal du som sagt skrive en blogpost og publisere de extension methods du gerne vil bidrage med. Udover det skal du sende mig (danielmf@microsoft.com) en email med emnet “Extension Method Battle” samt en url til din blogpost.

Jeg læser og vurdere sammen med et udvalgt panel, de extension methods der bliver skrevet om, og udfra det kåre vi en vinder. Der er trøstepræmier til de bedste 3 efter nummer 1.

Let the battle begin.

Mit eget bidrag kommer her (jeg kan naturligvis ikke vinder):

static class IEnumerableExtensions
{
public static IEnumerable<T> CustomSort<T, K>(this IEnumerable<T> list,
                                                  Func<T, K> selector, Boolean desc)
{
IEnumerable<T> returnList = new List<T>();

returnList = desc ? list.OrderByDescending(selector) : list.OrderBy(selector);

return returnList;
}
}

Tags:

Comments

10/30/2009 1:34:04 PM #

Troels Thomsen

Jeg vil godt lige slå et slag for at bruge en enum i stedet for en boolsk værdi til at angive rækkefølgen, og navnligt fordi du lidt atypisk lader dem være faldende som "standard" (for en sand værdi). Som konsekvens ville man få en lidt mere læselig anvendelse:

    xs.CustomSort(x => y, SortOrder.Ascending)

Et eksempel på hvordan jeg ville have skrevet den pågældende metode: http://csharp.pastebin.com/f3ac3182e (nå ja, optimalt set havde jeg også skiftet `Func` ud med `Converter`, men det er uden for min rækkevidde)

Troels Thomsen Denmark

11/4/2009 9:23:47 PM #

Janus007

hmm, denne lavede jeg i forbindelse med et tidligere blogindlæg, men jeg bruger den faktisk engang imellem:

public static class JKExtensions
{
    public static decimal? AverageOrNull(this IEnumerable type, Func selector)
    {
        try
        {
            return type.Average(selector);
        }
        catch (InvalidOperationException)
        {
            return null;
        }
    }
}

Standard Average smider en fejl hvis sekvensen er tom, derfor denne extension.

Men derudover bruger jeg rigtigt mange extensionmetoder ifb. med LINQ og et repository pattern jeg udviklede for et stykke tid siden. Superfedt at kunne genbruge og pakke komplicerede SQL'er ind. Jeg har svært ved at se fidusen i stored procedures mere Smile

Janus007 Denmark

11/26/2009 1:06:36 PM #

Rune Juhl-Petersen

Hvad skete der med konkurrencen? Kom der nogle fede extension methods ud af det?

Rune Juhl-Petersen Denmark

2/14/2010 1:38:09 PM #

اخبار

Thank you very much for the possibility to have a look into the office. Nice boy, he has got the talent to explain.

اخبار Egypt

2/28/2010 11:29:10 AM #

penny stocks

Awesome blog it's not often that I comment but I felt you deserve it.

penny stocks United States

3/4/2010 6:21:17 AM #

watch movies online free

I enjoy watching movies online, it is way easier than going to the theaters.

watch movies online free United States

3/4/2010 8:12:06 AM #

free hd movies

I like watching movies online, it is way cheaper than going to the theaters.

free hd movies United States

3/9/2010 8:41:28 PM #

WoW Mobile

Do you know which mobile phone services allow tethering?

WoW Mobile United States

3/10/2010 12:00:01 AM #

WoW Mobile

Do you know which cell phone services allow tethering?

WoW Mobile United States

3/14/2010 11:22:57 PM #

ssk sorgulama

This is a really good read for me, Must admit that you are one of the best bloggers I ever saw.Thanks for posting this informative article.

ssk sorgulama United States

3/17/2010 11:29:00 AM #

arac sorgulama

I admire the valuable information you offer in your articles. I will bookmark your blog and have my children check up here often. I am quite sure they will learn lots of new stuff here than anybody else!

arac sorgulama United States

3/20/2010 3:22:02 PM #

ehliyet

Excellent post.I want to thank you for this informative read, I really appreciate sharing this great post. Keep up your work.

ehliyet Denmark

4/1/2010 10:27:24 PM #

battle creek mich

Subject matter such as this post is why I continue to revisit this blog of yours. Keep up the awesome work!

battle creek mich Netherlands

4/4/2010 7:15:29 AM #

bidding directory

I'm completely pleased to discover this website. I want to say thank you for this great read. If you're able to add Stumbleupon button to your internet site, it can help you to reach far more people online. Many thanks

bidding directory United States

4/4/2010 2:36:28 PM #

wow leveling guide

Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be subscribing to your feed and I hope you post again soon.

wow leveling guide United States

4/7/2010 9:23:17 PM #

WV Payday Loans

Give yourself something to work toward - constantly.

WV Payday Loans United States

Add comment


(Will show your Gravatar icon)

(De 3 specielle karaktere i det danske alfabet?)
  Country flag

biuquote
  • Comment
  • Preview
Loading



Powered by BlogEngine.NET 1.6.0.0
Theme by Mads Kristensen