Ответ 1
Как только вы return s.ToString()
, остальная часть этого метода перестанет работать.
Метод не может возвращать несколько вещей.
Вероятно, вы хотите написать
someTextBox.Text = String.Join(Environment.NewLine, vegetables);
Noob question... Я пытаюсь отобразить List в текстовом поле... к сожалению, мой код отображает только первый элемент в списке...
private void Form1_Load(object sender, EventArgs e)
{
List<String> vegetables = new List<String>();
vegetables.Add("tomato");
vegetables.Add("carrot");
vegetables.Add("celery");
vegetables.Add("potato");
textBox1.Text = displayMembers(vegetables);
}
public string displayMembers(List<String> vegetables)
{
foreach (String s in vegetables)
{
return s.ToString();
}
return null;
}
Как мне получить текстовое поле для отображения всех участников? Где моя ошибка?
Как только вы return s.ToString()
, остальная часть этого метода перестанет работать.
Метод не может возвращать несколько вещей.
Вероятно, вы хотите написать
someTextBox.Text = String.Join(Environment.NewLine, vegetables);
Используйте string.Join():
textbox1.Text = string.Join(" ", vegetables);
Ответ был ближе и проще, чем вы думали:)
Примечание:, как указано в комментариях, эта конкретная функция имеет несколько перегрузок, добавленных в v4.0.Net framework. Если вы хотите посмотреть, что доступно для более ранних версий, используйте раскрывающийся список Other Versions
прямо под заголовком на странице doco MSDN.
Вам нужно каким-то образом связать строки, например
public string displayMembers(List<String> vegetables)
{
return string.Join(", ", vegetables.ToArray());
}
или
public string displayMembers(List<String> vegetables)
{
return string.Join(Environment.NewLine, vegetables.ToArray());
}
Вы делаете foreach, но возвращаетесь к первому элементу. Это приведет к простому отображению первого элемента.
Вместо этого вы, вероятно, захотите сделать что-то вроде:
public string DisplayMembers(IEnumerable<String> vegetables)
{
return String.Join(", ", vegetables);
}
Это использует String.Join, чтобы "сшить вместе" овощи в одну строку, которая затем может быть показана в TextBox.
Попробуйте следующее:
public string displayMembers(List<String> vegetables)
{
var text = string.Empty;
foreach (String s in vegetables)
{
text += s.ToString() + "\r\n";
}
return text;
}