Использование списка, поиска или словаря для большого списка данных

У меня есть статический класс в моей библиотеке классов под названием Lookup, я использую этот класс для поиска различных значений (, в данном случае Locations ).

Эти значения могут исчисляться сотнями. Поскольку 95% моих клиентов устанавливают мое приложение на машине без доступа к Интернету, я должен предположить, что мои приложения не будут иметь доступа к Интернету или доступа к базе данных.

Поэтому я хочу знать, является ли это эффективным способом обработки этого и правильно ли я удаляю объект, когда метод выполнен:

КОД:

using System;
using System.Collections.Generic;

namespace FunctionLibrary
{
    public static class Lookups
    {
        private static List<Vers> Versions;

        public static string GetVersion(string s)
        {
            string retValue = string.Empty;
            Versions = new List<Vers>();

            try
            {
                if (s.Trim().Length > 0)
                {

                    GetVersions();
                    retValue = Versions.Find(ver => ver.VersionNumber == s).VersionLiteral;

                    if (string.IsNullOrEmpty(retValue))
                    {
                        retValue = string.Format("{0} is an Unknown Version Number", s);
                    }
                }
                else
                {
                    retValue = "No version number supplied";
                }
            }
            catch
            {
                retValue = string.Format("{0} is an Unknown Version Number", s);
            }
            finally
            {
                Versions.Clear();
                Versions = null;
            }
            return retValue;
        }

        private static void GetVersions()
        {
            Versions.Add(new Vers() { VersionNumber = "0000", VersionLiteral = "Location 1" });
            Versions.Add(new Vers() { VersionNumber = "0001", VersionLiteral = "Location 2" });
            Versions.Add(new Vers() { VersionNumber = "0002", VersionLiteral = "Location 3"});
            Versions.Add(new Vers() { VersionNumber = "0003", VersionLiteral = "Location 4"});
            Versions.Add(new Vers() { VersionNumber = "0004", VersionLiteral = "Location 5"});
            Versions.Add(new Vers() { VersionNumber = "0005", VersionLiteral = "Location 6"});
            Versions.Add(new Vers() { VersionNumber = "0006", VersionLiteral = "Location 7"});
            Versions.Add(new Vers() { VersionNumber = "0007", VersionLiteral = "Location 8"});
        }
    }

    public class Vers
    {

        public string VersionLiteral { get; set; }
        public string VersionNumber { get; set; }
   }
}

Мне также интересно, следует ли мне использовать словарь или поиск вместо списка. Я просто не хочу, чтобы несколько вызовов этого метода вызывали проблемы с памятью.

6
задан Yasser 22 July 2012 в 06:33
поделиться