Witajcie,
Posiadam zbiór danych typu IEnumerable<'a> gdzie a to typ anonimowy zawierający kilka właściwości, dla uproszczenia niech to będą trzy wartości - Id , Name , Value. Dane są zapisane w zbiorze o nazwie "data". Na początku była to lista, ale pakowanie elementów do niej zajmowało bardzo dużo czasu i zrezygnowałem z niej.
Zapisane jest w nim bardzo dużo elementów i niestety wykonywanie operacji na tym zbiorze trwa bardzo długo.
Przykładowo , kiedy wykonam operację:
var query = (from x in data where x.Id == 20500 select x);
Zapytanie wykonuje się bardzo szybko a "query" posiada tylko jeden element o Id = 20500. Problem zaczyna się kiedy chcę wykonać operację na tym jednym obiekcie, nawet proste wypisanie na ekranie którejś z wartości:
MessageBox.Show(query.ElementAt(0).Name.ToString());
W query znajduje się tylko jeden element, dlatego zastanawiam się dlaczego operacja wypisania trwa to tak długo (około 15 sekund). Czy możecie pomóc mi w znalezieniu sposobu na to, żebym mógł w "sprawny" sposób poruszać się po tym zbiorze danych? Z góry dzięki za odpowiedzi.