Labs vakars,
Darbojos pie liela projekta uzturēšanas. Patīkami, ka spējam to arī tehnoloģiski bīdīt uz priekšu, savādāk būtu pavisam skumīgi. Tā nu sanāk, ka jau tagad varu pielietot .NET 3.5, un mācīties to optimāli izmantos.
Šoreiz viens vienkāršots bet visai tuvs realitātei piemērs.
Problēma: Ir masīvs ar skaļiem, jāsaskaita cik reizes atkārtojās piemēram 2.
var arr = new[] {1, 1, 2, 2, 2, 3, 3, 3};
Vien no klasiskiem realizācijas piemēriem
int c = 0;
for (int i = 0; i < arr.Length; i++)
{
if (arr[i]== 2)
{
c++;
}
}
Console.WriteLine(c);
Var izdomāt vel dažus variantus, bet katrs no tiem nav maksimāli īss. Pastāv reāla kļūdas varbūtību:)
Un šinī gadījumā palīgā nāk paplašinošā metode Count vārdu telpā System.Linq. Metodi var pielietot visiem objektiem, kas manto IEnumerable interfeisu. Pēc noklusējuma metode saskaita visus elementus, bet ir iespēja padot delegātu, kas filtrēs masīva elementus. Vēlamo rezultātu var iegūt uzrakstot šādu izteiksmi:
Console.WriteLine(arr.Count(i => i == 2));
Cerams noderēs!
Posted
Nov 13 2008, 01:34 PM
by
andrejs.mamontovs