[英]Add string with List to a multiline textbox
我正在嘗試使用此代碼在textbox
添加list
和string
ilaninfotextbox.Text = string.Join(Environment.NewLine, ilantextinner, combinelist);
ilantextinner
是一個string
並在文本框中正確顯示
ilantextinner
是一個包含 20 行的List<string>
但是ilantextinner
列表在文本框中顯示如下:
System.Collections.Generic.List`1[System.String]
如何在文本框中顯示ilantextinner
的內容?
注意:如果我只使用ilantextinner
內容顯示正確。
首先,您需要加入列表,使其成為單個字符串:
string joinedList = string.Join(Environment.NewLine, combinelist);
然后將此字符串連接到TextBox
字符串:
ilaninfotextbox.Text = string.Join(Environment.NewLine, ilantextinner, joinedList);
Join
函數有 5 個重載。 這是使用您的代碼調用的:
public static String Join(String separator, params object[] values);
它告訴我們什么?
此方法在分隔符之后接收一個object
數組,並且由於它使用了params
關鍵字,因此該方法實際上在values參數上接收了 this:
new object[] { ilantextinner, combinelist };
該方法將僅通過在 values 參數上找到的對象“循環”並調用它的ToString()
。
如何解決?
我會做類似的事情來達到你想要的結果:
combinelist.Insert(0, ilantextinner);
ilaninfotextbox.Text = string.Join(Environment.NewLine, combinelist);
第一行將ilantextinner
添加到列表的開頭,因此您可以簡單地使用需要IEnumerable<string>
的Join
重載。
有關params
關鍵字的更多理解,請參閱此鏈接: https : //msdn.microsoft.com/en-us/library/w5zay9db.aspx
你想用
string.join(string sepeator,params string[] value);
但是因為您沒有將 List 轉換為字符串數組,所以編譯器認為您會使用
string.join(string sepeator,params object[] value);
所以將 List 轉換為字符串數組
ilaninfotextbox.Text = string.Join(Environment.NewLine, String.Join(' ', lantextinner.ToArray()), combinelist);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.