Hi,
ich stehe gerade mal wieder komplett auf dem Schlauch.
Ich lese ne Textdatei mit diversen SQL-Abfragen ein (ja, nur ich habe Zugriff darauf..):
Die .txt sieht in etwa so aus:
"Sichtbarer Eintrag der Combox;SQL-Statement;string"
...
var lines = File.ReadLines("Abfragen.txt");
var data = lines.Select(l => l.Split(';'));
List<SQLB> alleSQL = data
.Where(arr => arr.Length >= 3)
.Select(arr => new SQLB
{
Name = arr[0],
sql = arr[1],
saver = arr[2]
})
.ToList();
var bindingSourceSQL = new BindingSource();
bindingSourceSQL.DataSource = alleSQL;
comboBox1.DataSource = bindingSourceSQL.DataSource;
comboBox1.ValueMember = "sql";
comboBox1.DisplayMember = "Name";
...
public class SQLB
{
public string Name { get; set; }
public string sql { get; set; }
public string saver { get; set; }
}
...
Wie greife ich auf den dritten "Parameter" zu ("saver") der im Array steht?
Hi,
deine Frage wirkt irgendwie komisch - kann sein, dass ich diese schlicht nicht verstehe - aber meinst du:
alleSQL[0].saver
?
LG
Hallo Torni,
Wie greife ich auf den dritten "Parameter" zu ("saver") der im Array steht?
Du hast jetzt eine Liste vom Typ "SQLB". Wenn du etzt über die Liste iterierst oder via Index auf einen Eintrag zugreifst, hast du diesen Eintrag und kann einfach mit "." auf die Properties, also auch auf "saver" zugreifen.
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Ich glaube, Torni meint, wie er über die ComboBox (bei Auswahl durch den Anwender) auf den dritten Parameter zugreifen kann (da er nur die ersten beiden damit verknüpft hat).
Mittels SelectedItem hast du Zugriff auf die ganze Daten:
var sqlb = comboBox1.SelectedItem as SQLB;
string saver = sqlb.saver; / bzw. .Saver (s.u.)
Noch besser ist es jedoch die BindingSource
als (privaten) Klassenmember zu deklarieren und darüber zuzugreifen (BindingSource.Current):
var sqlb = bindingSourceSQL.Current as SQLB;
PS: Eigenschaften sollten alle mit einem Großbuchstaben beginnen (also Sql
sowie Saver
).