Troch
ę się ostatnio bawiłem z Visual Studio 2008 i wersją 3.0 języka C#. A i w tym najbardziej reklamowanymi nowościami: LINQ i wyrażeniami lambda. I muszę powiedzieć, że wrażenia są bardzo, a to bardzo pozytywne.
Mówiąc szczerze na początku nieco się obawiałem, czy będę w stanie przekonać się do składni labda expressions, a samo ich wprowadzenie wydawało mi się pewnym rodzaju udziwnieniem. Ale wystarczyły mi dwa dni pracy z LINQ To Objects (czyli
m.in. rozszerzeniem interfejsu IEnumerable<T>) i składnię opanowałem w stopniu conajmniej zadowalającym. I teraz zamiast:
string
found = null;
foreach (string el in lista)
{
if (el.StartsWith("ABC"))
{
found = el;
break;
}
}
piszę po prostu:
string
found = lista.FirstOrDefault(el => el.StartsWith("ABC"));
O Statement Lambdas i ich zastosowaniu napiszę jeszcze kiedyś, bo to większy temat. A żeby było coś jeszcze o LINQ to mój faworyt: iteracja obiektów (nie wierszy!) zaznaczonych w gridzie posiadając
ych niepustą interesującą mnie wartość:
foreach
(IProjectInfo project in
from DataGridViewRow p in dgProjects.SelectedRows
let prj = p.DataBoundItem as IProjectInfo
where !String.IsNullOrEmpty(prj.Version)
select prj)
{
DoAction(prj);
Może nie wszyscy posiadający VS 2008 to wiedzą, ale środowisko zawiera świetny tutorial dla LINQ – polecam rozpakować sobie plik
<Program Files>\Microsoft Visual Studio 9.0\Samples\1033\CSharpSamples.zip i skompilować projekt LinqSamples.sln. Naprawdę warto!