Как использовать строку в качестве индекса?

Доброе утро.

Проблема:
У меня есть класс «Отчеты». Два конструктора. Один не допускает параметров, другой - массив строк. Строковый массив должен быть отчетами, которые они хотели бы отобразить. Я бы хотел сделать следующее:

string strSQL = this.Queries[strReportName];

Я чувствую, что это возможно, потому что в используемом мной dataGridView я получаю индекс столбца следующим образом:

int nColumnIndex = dgvParts.Columns[strColumnName].Index;

Оба этих примера используют строку, чтобы определить, какое значение в массиве они получают, но я не знаю, как это сделать. Кто-нибудь может мне помочь? Любая помощь приветствуется.

Редакторам и модерам: Да, часть отчетов слабо связана с другим сообщением, которое у меня есть о динамической загрузке DLL, но я бы хотел, чтобы другой оставался открытым. Мы с боссом решили на короткий срок, что у нас будет только одна DLL, и все будет жестко закодировано, но в долгосрочной перспективе мы хотим динамически добавлять библиотеки DLL в виде отчетов, поэтому, пожалуйста, не помечайте это как дубликат. Я планирую на этих выходных попробовать реализовать методы, данные мне в другом потоке. Спасибо.

Edit - Часть 2 вопроса : Хорошо, вот мой класс, как он сейчас:

public class Queries
{
  #region Report Queries
    #region Missing Code
      string strMissingCode = "SELECT * FROM PARTS WHERE CODE IS NULL OR CODE = ''";
    #endregion
  #endregion
}

Я бы хотел изменить его на что-то вроде этого:

public class Queries : Dictionary<string, string>
{
}

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

class Reports
{
  private List<ReportRecord> _lstRecrods = new List<ReportRecord>();
  public List<ReportRecord> Records { get { return _lstRecords; } }

  public Reports(string[] strDisplayedReports)
  {
    foreach (string strReportTitle in strDisplayedReports)
    {
      this.BuildReportList(strReportTitle);
    }
  }

  private void BuildReportList(string strReportTitle)
  {
    using (DataSet ds = Database.GetDataSet(Queries[strReportTitle]))
    {
      ...
    }
  }
}

Как мне сделать статические типы, когда мне не нужно создавать экземпляры запросов? Спасибо, ребята и девчонки.

7
задан XstreamINsanity 10 September 2010 в 13:01
поделиться