クラス ライブラリに Lookup という静的クラスがあり、このクラスを使用してさまざまな値 (この場合は場所) を検索しています。
これらの値は数百に及ぶ場合があります。私の顧客の 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; }
}
}
リストの代わりにディクショナリまたはルックアップを使用する必要があるかどうかも疑問に思っています。このメソッドを複数回呼び出してメモリの問題を引き起こしたくないだけです。