У меня возникли проблемы с созданием цикла foreach, который динамически создает кнопки на основе списка, который находится внутри класса NamesDA.Как создать динамические кнопки на основе arraylist
Я получаю такие ошибки, как: Невозможно преобразовать тип 'Program1.Names' в 'int'. Я испробовал все, что знаю, чтобы исправить ошибку конвертации, но я не знаю, как правильно это сделать.
Редактировать 1: allNames - это список массивов внутри NamesDA, который читает файл csv. Он возвращает список строк и int, которые затем должны использоваться для создания кнопок и их представления.
Редактировать 2: Проблема петли foreach решена сейчас, но я не могу получить значения столбца [0] для текста кнопки и столбца [1] для тега кнопки.
NamesDA класс:
private const string path = "names.csv";
public static List<Names> GetNames()
{
StreamReader textIn = new StreamReader(new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read));
List<Names> allNames = new List<Names>();
while (textIn.Peek() != -1)
{
string row = textIn.ReadLine();
string[] columns = row.Split(',');
allNames.Add(new Names(columns[0].ToString(), Convert.ToInt16(columns[1])));
}
textIn.Close();
return allNames;
}
Форма:
int startTop = 20;
int startLeft = 17;
allNames = NamesDA.GetNames(); //calling the method in the NamesDA class
foreach (int x in allNames) {
names[x] = new Button();
tempButton.Text = ""; //based on the list column[0]
tempButton.Tag = ""; //based on the list column[1]
names[x].Location = new System.Drawing.Point(startTop + (x * 95), startLeft);
listView.Controls.Add(names[x]);
}
какой тип 'NamesDA.GetNames()' return? какой тип «все»? –
Вы назначаете 'names [x]', но вы добавляете 'allNames [x]'. – dasblinkenlight
Есть несколько переменных, которые не определены в данном фрагменте ('names',' all'), можете ли вы определить их? –