25 de set. de 2009

Delphi to C# - I

image   clip_image001[4]   image

Há algum tempo atras, um amigo havia me perguntado como fazer algo equivalente em C# para a seguinte expressão em Delphi:

if 20 in [10, 20, 30, 40, 50] then ...

Nos meus blogs antigo, e na época reinava o C# 2.0, dentre algumas ideias a mais prática que havia encontrado e postado foi:

if(Array.IndexOf(new int[] { 10, 20, 30, 40, 50 }, numeroProcurado) != -1)

Confesso que ela nunca me agradou muito, apesar de ser extremamente flexível e servir para muitos outros propósitos, ou seja, não deixa de ser uma idea válida e util.

Ao revisar esta ideia, usei o poder do LINQ e eis uma solução satisfatória:

if (new[] { 1, 2, 3, 4, 5 }.Contains(4))
{
    // ...
}

image

Agora sim! :D

Viva o C# + LINQ!

0 comentários: