Tema: Re: C# ir DataTable.Select vs List<>.Find
Autorius: zZz
Data: 2010-04-09 11:07:13
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? :)
>> 

3Dastronomyagricultureaudioautosautos.audiautos.audioautos.binariesautos.bmwautos.clubautos.fordautos.hondacrxautos.japanautos.mercedesautos.opelautos.sportautos.volvoautos.vwaviaavia.binariesbankcardsbinariesbooksbuildingcinemacommercecomp.hardwarecomp.softwarecomp.lietuvinimascomp.networksculturedarbas.ieskaudarbas.siulaudesigneconomicselectronicsfaunafauna.aquafauna.binariesfishingflorafotofoto.binariesgamesgames.csgames.onlinegsmgurmanaihumourhumour.binariesinternetlawmicrosoftmotomusicmusic.binariesmusic.instrumentsmusic.LT.binariesnavigacijaphppoliticsprogrammingrpgsportstudyingsveikatatalktesttranslationtransportationtraveltravel.binariestvunixvideovideo.binarieswatersportswwwwww.flashpdaautos.supermama.ltmobiledarbasretro.3Dretro.agricultureretro.astronomyretro.audioretro.autosretro.autos.audiretro.autos.audioretro.autos.binariesretro.autos.bmwretro.autos.clubretro.autos.fordretro.autos.hondacrxretro.autos.japanretro.autos.mercedesretro.autos.opelretro.autos.sportretro.autos.supermamaretro.autos.supermama.ltretro.autos.volvoretro.autos.vwretro.aviaretro.avia.binariesretro.bankcardsretro.beosretro.binariesretro.booksretro.buildingretro.cinemaretro.commerceretro.compretro.comp.hardwareretro.comp.lietuvinimasretro.comp.networksretro.comp.softwareretro.cultureretro.darbasretro.darbas.ieskauretro.darbas.siulauretro.designretro.economicsretro.electronicsretro.e-vejasretro.faunaretro.fauna.aquaretro.fauna.binariesretro.fishingretro.floraretro.fotoretro.foto.binariesretro.gamesretro.games.csretro.games.onlineretro.games.rpgretro.genealogijaretro.gsmretro.gurmanairetro.humourretro.humour.binariesretro.internetretro.YZFretro.YZF.nebukretro.YZF.nebuk.netikintisretro.YZF.nebuk.netikintis.bukretro.YZF.nebuk.netikintis.buk.tikintisretro.lawretro.microsoftretro.mobileretro.motoretro.musicretro.music.binariesretro.music.instrumentsretro.music.LTretro.music.LT.binariesretro.navigacijaretro.newsretro.news.taisyklesretro.newuserretro.pdaretro.phpretro.politicsretro.programmingretro.rpgretro.sportretro.studyingretro.sveikataretro.talkretro.translationretro.transportationretro.travelretro.travel.binariesretro.tvretro.unixretro.videoretro.video.binariesretro.watersportsretro.wwwretro.www.flashdiylt.rkm.news.announcelt.rkm.news.newuser