![](/img/trans.png)
[英]TextBox will not display the contents of a bound static generic list item
[英]Need help to display the contents of a list in a textbox
我试图在Windows窗体应用程序文本框中显示10个人的名字。 代码的最后一行给了我以下两个错误:
'string.Join(string,string [])'的最佳重载方法匹配具有一些无效的参数。
参数2:无法从“ System.Collections.Generic.List”转换为“ string []”。
有人可以解释这些错误以及如何解决这些错误吗?
public class FullName
{
public string name;
public string surname;
}
int i;
List<FullName> namesList = new List<FullName>();
for (i = 0; i < 10; i++)
{
namesList.Add(new FullName { name = "John", surname = "Adams" });
}
txt_names.Text = String.Join(" ", namesList);
String.Join期望要加入的字符串列表。 您现在正在提供全名列表。
你可以试试:
String.Join(",", namesList.Select(m => m.name).ToArray());
如果您想同时使用名字和姓氏,则可以简单地附加它:
String.Join(",", namesList.Select(m => m.name + m.surname).ToArray());
使用覆盖使字符串美化
public class FullName
{
public String Name { get; set; }
public String SurName { get; set; }
public override string ToString()
{
return String.Format("{0} {1}", Name, SurName);
}
}
覆盖ToString()方法后,您可以调用class进行打印。
List<FullName> Names = new List<FullName>();
for ( int i = 0; i < 10; i++ )
{
Names.Add(new FullName() { Name = "John", SurName = "Smith" });
}
Console.WriteLine(String.Join("\r\n", Names));
结果>
John Smith
John Smith
John Smith
John Smith
John Smith
John Smith
John Smith
John Smith
John Smith
John Smith
您正在将通用列表作为String.Join()的第二个参数传递,同时它接受字符串数组。
所以代替
txt_names.Text = String.Join(" ", namesList);
txt_names.Text = String.Join(" ", namesList.Select(x=> $"{x.Name} {x.SurName}");
其余的一切都会好起来的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.