Miért nem?!

B+Tree c#
Ha még a google se tudja a jó választ akkor mi a *-om?

btw: B-Tree: http://en.wikipedia.org/wiki/B-tree

------------------------------------

Mért olyan nagy dolog ha a saját ICollection -t szeretném '1Gb' méretben kezelni anélkül hogy a memóriában csücsülne az egész collection???


Mért nincs ilyen a c# .NET környezetben?

class PersistedItem
{
   public Item(int index)
  {
     Index = index;
  }
  public int Index { get;private set; }
  public string OtherVariables { get; set; }
}

void main(object[] args)
{
  var coll = new PersistedCollection();
  for (int i = 0; i< 100.000.000;i++)
  {
     coll.Add(new MyData(i) { OtherVariables = "Abcd"} );
  }
  coll.Persist("c:\temp\db.xyz.temp");
  ....
  coll = LoadCollection("c:\temp\db.xyz.temp");
  item = coll.First(item=>item.Index > 560.000);
}

Anélkül hogy akármilyen DB műveletet kellene végeznem? És közben az összes elem a  ne legyen a memóriában lefoglalva...


Tell me why?

-------------------------------------------------------

Miért kellene adatbázisba tenni a "PersitedItem" elemeit és utánna meg "visszatölteni" amikor nincs semmi SQL a fenti lekérdezésben...

Van benne Collection
Van benne épp mint 100.000.000 elem
-***
és épp egyet keresek ki belőle.

//////
GYK - usual way- a szokásos megoldás:

var rd = new SqlConnection.CreateCommand("select top 1 OtherVariables from [pub].PersitedCollection where Id > 560.000");

var result = rd.Read();
... Instanciate and populate Persistedtem
    var persistedItem = new PersistedItem()
    var pi = typeof(PersistedItem).GetType().GetProperty("OtherVariables");
    pi.SetValue(persistedItem, rd.ReadString("OtherVariables"));
....


/////   
Q2: miért érdekes:
mert ha nem akarom a q-va PersitedItem-et adatbázisban tárolni...
mert:
  nincs lehetőség telepíteni bármi runtime környezetet (aka: faszom fostalicska okostelefonok)
  nincs elég memória lokálisan a teljes collection kezelésére

Miért nem tudod Ó mondd meg..