2012-10-17 67 views
-1

如何添加到至少在foreach循環中的數組。從循環中添加到數組C#

僞例如

String[] mylist; 

foreach (ipadress ip in list) 
{ 
    i want to add to array ip.ToString(); 
} 
then put my list to a textbox 

回答

8

如果你正在使用LINQ試試這個:

String[] mylist = list.Select(I => Convert.ToString(I.ip)).ToArray(); 
+0

Thanks..Its工作,編譯,可以在這裏 –

2

快速短:

String[] myList; 

List<int> intList = new List<int> { 1, 2, 3, 4 }; 

myList = intList.ConvertAll<String>(p => p.ToString()).ToArray<String>(); 
-1
int i=0; 
String[] mylist; 
foreach(ipaddress ip in list) 
{ 
mylist[i]=ip.ToString(); 
i++ 
} 
+0

代碼。 –

+0

謝謝,這就是我一直在尋找!我想我自己tho ..我認爲,如果我給一個int我= 0;出循環和i ++在循環中,在每個循環它將給我值0 ....新的C#:D – Spreadzz

+0

這個代碼甚至不會編譯。 –

2

首先,如果這是一個家庭作業問題,它應該被標記爲s UCH。

無論如何,假設你有字符串[]您傳遞值,並假設你的ip地址類的完全控制已經的ToString()重載給你回了一些智能化的信息:

string[] myList = new string[list.Count]; 
int i = 0; 
foreach (IPAddress ip in list) 
{ 
    myList[i++] = ip.ToString(); 
} 

雖然我必須質疑爲什麼要在數組和列表對象之間來回切換。

+0

我想出鱈魚來顯示我的本地IP地址。我把它貼出來。儘管在foreach中,我做了一個if(ip.AddressFamily.ToString()==「InterNetwork」),它將向我顯示ip,但我意識到,新的c#不知道如何從循環中添加數組。所以我只是爲了學習而做的。 – Spreadzz

+0

不要嘲笑「ip.AdressFamily.ToString()」:))我不知道這樣做是困難的,並且不想研究 – Spreadzz

+0

[家庭作業標籤現在正式被棄用。](http: //meta.stackexchange.com/questions/147100/the-homework-tag-is-now-officially-deprecated) –

-2

想通了......編程新手..謝謝大家。我使用了tharindlaksh發佈的相同代碼。

這是它的外觀:

string[] all ; 
int i = 0; 

foreach (IPAddres ip in host.AddressList) 
{ 
    all[i] = ip.ToString(); 
    i++; 
} 

textBoxMain.Text = all[0] + "\n" + all[1] + \n" + all[2] + "\n" + all[3]; 
+0

這段代碼不會編譯。正確的類名是'IPAddress'。它不清楚你將'AddressList'的內容轉換爲字符串的原因。 –

+0

錯過了一個「s」,因此最終你會擊中本地ip地址... – Spreadzz

+0

不要忘記初始化你的字符串[]!您需要將其長度設置爲(至少)與您傳入的數據長度相匹配,否則您可能會遇到超出限制的異常。 – MadHenchbot