2014-01-17 225 views
0

中的字符数组如何从函数返回字符数组?我目前使用C#。我有这样的功能:返回函数

public char bsortfunction(char[] letters) 
{ 
    char temp; 
    for (int i = 0; i < letters.Length; i++) 
    { 
    for (int x = 0; x < i; x++) 
    { 
    if (letters[i] < letters[x]) 
    { 
     temp = letters[i]; 
     letters[i] = letters[x]; 
     letters[x] = temp; 
    } 

    } 

    } 
    return (cant seem to figure out how to return the letters[]) 

}

private void btnsort_Click(object sender, EventArgs e) 
{ 
    char[] characters = txtstring.Text.ToCharArray();  
    lblresult.Text = bsortfunction(characters); 

} 
+0

所以它应该是一个公共字符。好吧,我会尝试先生,谢谢 – arukiri123

+0

请澄清你的问题。你想返回一个字符串或字符数组? –

+0

我想返回一个字符数组 – arukiri123

回答

2

你可以简单地这样做:

return new string(letters); 
0

使用:

public char[] bsortfunction(char[] letters) 
    { 
     char temp; 
     for (int i = 0; i < letters.Length; i++) 
     { 
      for (int x = 0; x < i; x++) 
      { 
       if (letters[i] < letters[x]) 
       { 
        temp = letters[i]; 
        letters[i] = letters[x]; 
        letters[x] = temp; 
       } 

      } 

     } 
     return (letters); 
    } 

或者你可以使用:

return new string(letters); 

sample

char[] chars = {'a', ' ', 's', 't', 'r', 'i', 'n', 'g'}; 
string s = new string(chars); 
+0

之后char-array被记录为[],我得到一个错误。不能隐式地将类型'char []'转换为'char' – arukiri123

+0

@ arukiri123你是什么错误 –

+0

不能将类型'char []'隐式转换为'string'。它现在引用这个代码:lblresult.Text = bsortfuncion(characters); – arukiri123

4

如果你只是想你的字符数组转换成一个字符串,你可以这样写:

return new string(letters); 

如果需要返回一个实际的字符数组,你需要将函数的返回类型更改为char[]而不是string

1

只返回一个新的字符串:

return new string(letters); 
3

您试图返回一个字符串。如果你想返回字符串试

public char[] lettersbsortfunction(char[] letters) 
{ 
    char temp; 
    for (int i = 0; i < letters.Length; i++) 
    { 
    for (int x = 0; x < i; x++) 
    { 
    if (letters[i] < letters[x]) 
    { 
     temp = letters[i]; 
     letters[i] = letters[x]; 
     letters[x] = temp; 
    } 

    } 

    } 
    return letters; 

} 
+0

,谢谢先生。现在的问题是当我打电话的功能。它说它不能将char []转换为字符串 – arukiri123

+0

所以返回一个字符串=)看看dvnrrs回答 – Plue

+0

是的先生。我已经看过它,它的工作。谢谢 :) – arukiri123

0

:试试这个

return new String(letters); 

如果你想回到你的方法的字符数组改变返回类型的字符数组:

public char[] lettersbsortfunction(char[] letters) 

而且:

return letters; 

Al ternatively您可以使用关键字ref在这个case.If你只想操纵字母排列,你不需要任何回报:

public void bsortfunction(ref char[] letters) 
{ 
    char temp; 
    for (int i = 0; i < letters.Length; i++) 
    { 
     for (int x = 0; x < i; x++) 
     { 
     if (letters[i] < letters[x]) 
     { 
      temp = letters[i]; 
      letters[i] = letters[x]; 
      letters[x] = temp; 
     } 

    } 

}