我尝试使用此代码在list
中添加string
和textbox
ilaninfotextbox.Text = string.Join(Environment.NewLine, ilantextinner, combinelist);
ilantextinner
是string
并在文本框中正确显示
ilantextinner
是List<string>
,其中有20行
但是ilantextinner
列表在文本框中显示如下:
System.Collections.Generic.List`1[System.String]
如何在文本框中显示ilantextinner
的内容?
注意:如果仅使用ilantextinner
,则会正确显示内容。
答案 0 :(得分:1)
首先,您需要加入列表,使其成为单个字符串:
string joinedList = string.Join(Environment.NewLine, combinelist);
然后将此字符串加入TextBox
字符串:
ilaninfotextbox.Text = string.Join(Environment.NewLine, ilantextinner, joinedList);
答案 1 :(得分:1)
Join
函数有5次重载。这是使用您的代码调用的那个:
public static String Join(String separator, params object[] values);
它告诉我们什么?
此方法在分隔符后面接收object
数组,并且由于它使用的是params
关键字,因此该方法实际上会在值参数上接收此数据:
new object[] { ilantextinner, combinelist };
该方法将&#34;循环&#34;只能通过values参数中找到的对象调用它ToString()
。
如何解决?
我会做这样的事情来达到你想要的结果:
combinelist.Insert(0, ilantextinner);
ilaninfotextbox.Text = string.Join(Environment.NewLine, combinelist);
第一行将ilantextinner
添加到列表的开头,因此您只需使用期望Join
的{{1}}重载。
有关IEnumerable<string>
关键字的更多信息,请参阅此链接:https://msdn.microsoft.com/en-us/library/w5zay9db.aspx
答案 2 :(得分:0)
您想使用
string.join(string sepeator,params string[] value);
但是因为你没有将List To Array转换为字符串,编译器认为你会使用
string.join(string sepeator,params object[] value);
因此将List转换为字符串数组
ilaninfotextbox.Text = string.Join(Environment.NewLine, String.Join(' ', lantextinner.ToArray()), combinelist);