Methode mit Rückgabewert List<T>
-
Grüezi,
folgendes ... es gibt bereits eine Win-Form und diese soll nun etwas erweitert werden - leider kann von uns niemand richtig gut C# programmieren.
Wir sind zwar nun ein stück weiter gekommen, aber nun hat sich folgendes ergeben.Auswahl eines Datensatzes aus einer ComboBox.
Selektierter Wert wird an eine Methode übergeben und soll wiederum eine List<T> mit bestimmten Daten zurück geben, die dann an TextBoxen gebunden werden.Nur weiß ich nicht, wie ich die Rückgabe einer List<T> mache?!
List<Utility> utility; private void cbChar_SelectedIndexChanged(object sender, EventArgs e) { var char = cbChar.SelectedItem as Utility; if (char!= null) { //die folgenden beiden Zeilen gehen leider nicht wie gewünscht utility = (Utility)DB.SelectionChar(char.id); textbox1.Text = utility.Degree; } }
public static IEnumerable<Utility> SelectionChar(int ID) { List<Utility> util = null; util.Add("bla"); ... return util;
Fehlermeldung: Eine implizite Konvertierung vom Typ System.Collections.Generic.List ist nicht möglich
-
Na ja, spontan fällt auf, dass die Klasse List<T> kein Member "degree" hat. Das ist vmtl. eine Eigenschaft eurer Utility-Klasse. Demnach solltet ihr auch aus der Liste ein Utility-Objekt auswählen und dessen degree-Eigenschaft abrufen.. z.B. das erste Element:
List<Utility> utilityList; private void cbChar_SelectedIndexChanged(object sender, EventArgs e) { var selectedUtility = cbChar.SelectedItem as Utility; if (selectedUtility != null) { utilityList= new List<Utility>(DB.SelectionChar(selectedUtility .id)); if (utilityList.Count > 0) { textbox1.Text = utilityList[0].Degree; } } }
Edit 1: Unabhängig davon scheint mir euer Design eher suboptimal zu sein, aber dazu weiß ich zu wenig darüber.
Edit 2: char ist ein Keyword und kann nicht als Variablenbezeichner verwendet werden.
-
@GPC
Hat prima geklappt
Mit char als Keyword ist uns auch recht schnell aufgefallen, leider haben wir das beim Posten des Beitrages übersehen.Ist es eigentlich möglich, zu einer DataTable die Ihre Daten in einem DataGridView ausgibt, noch einen händisch erstellten Button hinzuzufügen?
... var da = new MySqlDataAdapter(); da.SelectCommand = command; DataTable dt = new DataTable(); da.Fill(dt); return dt;
Dann sowas in der Art:
DataGridViewButtonColumn btnSelect = new DataGridViewButtonColumn(); btnSelect.UseColumnTextForButtonValue = true; btnSelect.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; btnSelect.FlatStyle = FlatStyle.Standard; btnSelect.CellTemplate.Style.BackColor = Color.LightGray; btnSelect.Text = "OK"; btnSelect.HeaderText = "OK"; DataGridView1.Columns.Add(btnSelect);
-
Als Anmerkung:
Wir schreiben in C# - hab aber beim letzten Beitrag leider den falschn Button gewählt.
-
Problem hat sich erledigt!