2014-02-14 48 views
-2

當我對一些程序 我發現錯誤 上部分代碼array.find
其說嘗試指定參數明確如何找到字符串數組名稱和顯示所有

int x; 
string[] b = new string[5]; 
b[0] = "Tukul"; 
b[1] = "Dedy"; 
b[2] = "Aldi"; 
b[3] = "Anang"; 
b[4] = "Aconk"; 
Console.WriteLine(b[0] + " " + b[1] + " " + b[2] + " " + b[3] + " " + b[4]); 
Console.WriteLine("Masukan Huruf awal yang ingin dicari : "); 
string nama = Console.ReadLine(); 
Console.Clear(); 
Console.WriteLine("Nama yang ditemukan !!"); 
for (x = 0; x < 5; x++) 
{ 
    string apa = Array.FindAll(b[x], element => element.StartsWith(nama, StringComparison.OrdinalIgnoreCase)); 
    Console.WriteLine("".PadLeft(10, '=')); 
    Console.WriteLine(apa); 
    Console.WriteLine("".PadLeft(10, '=')); 
} 
+0

代碼中沒有Array.Find。指定準確的錯誤消息(我們不需要整個堆棧轉儲,只是錯誤)。 –

回答

0

請嘗試以下方法。原始代碼上的問題在Array.FindAll上,因爲第一個參數是T的一個數組(在你的情況下爲string[] b),它返回一個T的數組(在你的情況下爲string[])。

int x; 

string[] b = new string[5]; 

b[0] = "Tukul"; 
b[1] = "Dedy"; 
b[2] = "Aldi"; 
b[3] = "Anang"; 
b[4] = "Aconk"; 

Console.WriteLine(b[0] + " " + b[1] + " " + b[2] + " " + b[3] + " " + b[4]); 
Console.WriteLine("Masukan Huruf awal yang ingin dicari : "); 
string nama = Console.ReadLine(); 
Console.Clear(); 
Console.WriteLine("Nama yang ditemukan !!"); 

foreach (var apa in Array.FindAll(b, element => element.StartsWith(nama, StringComparison.OrdinalIgnoreCase))) 
{ 
    Console.WriteLine("".PadLeft(10, '=')); 
    Console.WriteLine(apa); 
    Console.WriteLine("".PadLeft(10, '=')); 
} 
+0

thx爲答案 更喜歡wdosanjos代碼 它適合我 – RedHatSource

2

b[x]是單個字符串變量。如果要使用Array.FindAll方法,則應通過array方法

Array.FindAll(b, element => element.StartsWith(nama, StringComparison.OrdinalIgnoreCase)); 

這將返回一個字符串array.You不能將其分配給要檢查當前元素的string.if那麼你可以使用:

string apa = b[x].StartsWith(nama, StringComparison.OrdinalIgnoreCase); 
相關問題