Nice. Dėkui. "Andrius F" <andriusflMORESPAM@gmail.com> wrote in message news:hpmjgt$m8g$1@trimpas.omnitel.net... > Žinoma kad List<>.Find bus greičiau. > > List ir DataTable klasės sprendžia labai skirtingas užduotis, > taip kad sunku patart kurią geriau naudoti nežinant užduoties .. > Abidvi paieškos yra O(n) operacijos, kur n narių skaičius , tačiau Select > visada eis per visus narius, kai Find tik iki pirmo tinkamo. > įdomumo dėlei worst case scenario.. > > int count = 50000; > DataTable dataTable = new DataTable("table"); > dataTable.Columns.Add(new DataColumn("StringValue")); > var list = Enumerable.Range(0,count).Select(v => string.Concat("Value_", > v.ToString())).ToList(); > var searchValue = string.Concat("Value_", count - 1); > foreach (var value in list) > { > var row = dataTable.NewRow(); > row[0] = value; > dataTable.Rows.Add(row); > } > Debug.Assert(dataTable.Rows.Count == list.Count); > var sw = Stopwatch.StartNew(); > var result = list.Find(s => s.Equals(searchValue)); > Console.WriteLine("List<>.Find() took {0}",sw.Elapsed); > Console.WriteLine("Search result : {0}", result ?? "not found"); > sw = Stopwatch.StartNew(); > var rowResults = dataTable.Select(string.Concat("StringValue = > '",searchValue,"'")); > Console.WriteLine("DataTable.Select() took {0}", sw.Elapsed); > Console.WriteLine("Items found : {0}", rowResults.Length); > > --------------- > List<>.Find() took 00:00:00.0014666 > Search result : Value_49999 > DataTable.Select() took 00:00:00.2763895 > Items found : 1 > > hope this hepls > a. > > "zZz" <zZz@zirzilia.lt> wrote in message > news:hpkmjd$vv0$1@trimpas.omnitel.net... >> Gal kas turit šių paieškų greičių palyginimus? :) >>