C# 需要帮助在文本框中显示列表的内容吗
我试图在windows窗体应用程序文本框中显示10个人的姓名。最后一行代码给出了以下两个错误: 与“string.Join(string,string[])”匹配的最佳重载方法具有一些无效参数 参数2:无法从“System.Collections.Generic.List”转换为“string[]” 有人能解释一下错误以及如何修复它们吗C# 需要帮助在文本框中显示列表的内容吗,c#,list,C#,List,我试图在windows窗体应用程序文本框中显示10个人的姓名。最后一行代码给出了以下两个错误: 与“string.Join(string,string[])”匹配的最佳重载方法具有一些无效参数 参数2:无法从“System.Collections.Generic.List”转换为“string[]” 有人能解释一下错误以及如何修复它们吗 public class FullName { public string name; public string surname; } in
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);
公共类全名
{
公共字符串名称;
公共字符串姓氏;
}
int i;
列表名称列表=新列表();
对于(i=0;i<10;i++)
{
添加(新全名{name=“John”,姓氏=“Adams”});
}
txt_names.Text=String.Join(“,名称列表);
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()方法后,可以调用类来打印它
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));
您正在将泛型列表作为第二个参数传递给String.Join(),而它接受字符串数组 因此,与其
txt_names.Text=String.Join(“,名称列表)代码>
您可以通过使用简单的LINQ扩展方法来纠正这一点
txt_names.Text=String.Join(“,namesList.Select(x=>$”{x.Name}{x.nam姓氏}”);
其余的就可以了。您正在尝试传递FullName
对象的列表。string.Join()
需要string
对象。您可以执行类似string.Join(“,namesList.Select(n=>$”{n.name}{n.names})的操作
使之生效。谢谢,非常有用。谢谢,非常有用。谢谢,非常有用。
John Smith
John Smith
John Smith
John Smith
John Smith
John Smith
John Smith
John Smith
John Smith
John Smith