2008-09-18 29 views
2

Je souhaite vérifier l'existence d'une table avec un ID donné dans un document Word dans C# (VS 2008) Visual Studio Tools pour Bureau (version 3).Comment vérifier l'existence d'une table avec un ID donné dans un document Word dans C# VSTO 3

De toute évidence, je peux parcourir la collection de tables du document et vérifier chaque ID, mais cela semble inefficace; le document finira par avoir quelques douzaines de tables après que j'en aurai fini avec lui, et même si je sais que ce n'est pas beaucoup, la lecture en boucle de la collection semble bâclée. La collection Tables est uniquement indexée par l'ID entier, pas par l'ID de chaîne affecté à la table, donc je ne peux pas utiliser un index, et il n'y a pas de méthode Exists apparente de la collection de documents ou de tables.

J'ai pensé à transformer la collection Tables en IQueryable en utilisant AsQueryable(), mais je ne sais pas comment faire cela de manière à pouvoir l'interroger par ID.

Pointeurs docs ou exemple de code serait apprécié, ou s'il y a une meilleure façon de s'y prendre, je suis pour cela aussi

Répondre

1

Je ne pense pas qu'il y ait une meilleure façon de le faire. Toute solution incluant IQueryable aurait probablement besoin d'itérer la collection en interne donc ne serait pas plus rapide.

Les performances ne sont probablement pas un problème de toute façon, donc je ne m'inquiéterais pas de l'inefficacité.

Si vous le faites souvent, vous pouvez fournir un wrapper qui itère une fois dans les tables et génère un dictionnaire que vous utiliserez par la suite.