1

約 70,000 の XML エントリのデータベースを検索し、クエリに一致する項目を選択し、それらの項目を listBox に表示するために返す必要がある Windows Phone プロジェクトがあります。

LINQ を使用すると、妥当な時間 (< 2 秒) で実際の検索を実行できます。ただし、大量のエントリを含む listBox のロードには、かなりの時間がかかるようです。そのため、10 個の項目を表示し、ユーザーがさらに表示したい場合は [次へ] をクリックできるようにしたいと考えています。

私が抱えている問題は、タイプ IEnumerable のオブジェクトに対してあらゆる種類の操作を実行すると、まったく不当な時間がかかることです。これには、Count、.Take(10)、および .ToList(); が含まれます。これらの操作の実行にはそれぞれ約 1 分かかります。これは、私が作成しているソフトウェアにとってはまったく不合理です。

最終的には、位置によってエントリに簡単にアクセスできる限り、データの形式は気にしません。このデータを簡単に出力できるソリューションを探しています。

4

1 に答える 1

0

これについては明示的に述べていませんが、XElement または XmlElement を操作していると思います。最初に XML をオブジェクトにデシリアライズする必要があります。(特定の XML から XSD を生成できるツールがあり、XSD からクラスを取得できます)。

その後、LINQ ははるかに高速になり、データに必要な RAM も少なくなるはずです。

それが正しくない場合は、質問をさらに詳細に更新してください。

于 2013-01-03T00:38:11.607 に答える