Mañana.¿Cómo se usa una cadena como índice?
Issue:
Tengo una clase llamada Informes. Dos constructores Uno no permite parámetros, el otro una matriz de cadenas. Se supone que el conjunto de cadenas son los informes que les gustaría mostrar. Lo que me gustaría hacer es la siguiente:
string strSQL = this.Queries[strReportName];
Tengo la sensación de que es posible porque en el dataGridView que estoy usando, me sale el índice de la columna por:
int nColumnIndex = dgvParts.Columns[strColumnName].Index;
estos dos los ejemplos usan una cadena para determinar qué valor en la matriz recuperan, pero no estoy seguro de cómo hacerlo. ¿Alguien puede darme algo de ayuda? Cualquier y toda ayuda es apreciada.
Para los editores y las modificaciones: Sí, la parte de informes se relaciona de manera vaga con la otra publicación que tengo sobre la carga dinámica de archivos DLL, pero me gustaría mantener la otra abierta aún. Mi jefe y yo decidimos a corto plazo, solo tendremos una única DLL y todo estará codificado, pero a la larga queremos incluir dinámicamente las DLL como informes, así que no etiquetes esto como un duplicado. Planeo este fin de semana para tratar de implementar los métodos que me dieron en el otro hilo. Gracias.
Edición - Parte 2 de la pregunta: Ok, aquí está mi clase, ya que es en este momento:
public class Queries
{
#region Report Queries
#region Missing Code
string strMissingCode = "SELECT * FROM PARTS WHERE CODE IS NULL OR CODE = ''";
#endregion
#endregion
}
me gustaría cambiarlo a algo como esto:
public class Queries : Dictionary<string, string>
{
}
Pero no quiero que tengan que usar un constructor para crear una instancia. Quiero estática de tipo para que pueda ejecutar código como este:
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]))
{
...
}
}
}
¿Cómo puedo hacer que estática de tipo a donde yo no tengo que crear una instancia de consultas? Gracias chicos y chicas.
Los indexadores estáticos no están permitidos (sin ninguna razón particularmente buena). http://stackoverflow.com/questions/154489/are-static-indexers-not-supported-in-c – spender
lol. Estaba leyendo un hilo que lo involucraba en otro sitio con respecto a esto. Parecía que lo había resuelto, pero si él dice que no, entonces es no. Dern it. :) Gracias. – XstreamINsanity