2016-07-14 25 views
0

Ich versuche, eine Tabelle mit einem Datagrid zu erstellen, das bis zu 8 Milliarden Elemente enthalten kann. Ich habe es geschafft, eine virtuelle Sammlung zu verwenden, um eine schnelle Verarbeitung zu erhalten - das ist also kein Problem. Die virtualisierende Sammlung implementiert jedoch IList, die einen INT für den Zählwert verwendet. Mein Problem ist, sobald ich 2^32 Elemente getroffen habe, wird der Zählwert der Beschränkung INT negativ. Was kann ich tun, um meine Elemente zu unterstützen? Hat Microsoft eine Unterstützung für die Verwendung einer langen für die Zählung? Gibt es eine andere Sammlung, die ich ohne diese Einschränkung verwenden sollte?Erstellen eines Listentyps mit long anstelle von int für die Zählung

+0

Ich glaube, dass Sie Ihre UI-bezogene Architektur überdenken müssen. Alle Schnittstellen in WPF verwenden Int32 als Elementanzahl/aktuelle Position. Sie können kein vorhandenes DataGrid-Steuerelement verwenden, das an eine Sammlung gebunden ist, die Int64 zum Zählen und Indizieren verwendet, unabhängig davon, wo es sich um eine virtuelle oder normale Sammlung handelt. Sie möchten vielleicht in den Paging- oder Gleitfenster-Ansatz schauen und einige berechnete Werte anzeigen, um den Int64-Zähler und die Position nachzuahmen. –

Antwort

2

Verwendung:

var list = new List<Data>() 

.. load data ... 

long items = list.LongCount() 

, die den Trick tun sollte ... wenn Ihr Backend die Daten geladen!