2012-03-11 46 views
1

如何從C#中的類中返回多個值我以下面的方式嘗試過,但它對我無效。在C#中返回多個值

protected static string setvalues; 
public static string myfunction() 
{ 
     cmd = new SqlCommand("SELECT * FROM category", con); 
     con.Open(); 
     SqlDataReader dr = cmd.ExecuteReader(); 
     while (dr.Read()) 
     { 
      setvalues = dr[0].ToString(); 
     } 
     con.Close(); 
     return setvalues.ToString(); 
} 

我在分類表中的下列

Mobiles 
Laptops 
Cloths 
DVD players 
Televisions 
Cameras 

有人請幫我建立,可以返回值十萬代碼。

+0

你不能只將它們作爲字符串[]返回?或者讓它成爲一個永恆的,並使用'yeild return'。 – Ben 2012-03-11 04:29:29

回答

1

在C#語言列表類型可以解決上述問題。使用列表,你不需要自己管理大小

protected static List<string> listSetValues = new List<string>(); 
    public static List<string> myfunction() 
    { 
     cmd = new SqlCommand("SELECT * FROM category", con); 
     con.Open(); 
     SqlDataReader dr = cmd.ExecuteReader(); 
     while (dr.Read()) 
     { 
      listSetValues.Add(dr[0].ToString()); 
     } 
     con.Close(); 
     return listSetValues; 
    } 
+0

我得到的輸出爲'System.Collections.Generic.List'1 [System.String]' – 2012-03-11 04:49:58

+0

您可以簡單地導入System.Collections .Generic命名空間並可以訪問List的所有屬性和方法...... – 2012-03-11 04:56:31

4

你想(使用迭代器或IEnumerable<string>yield return)返回一個List<String>

+0

對不起,我從來沒有工作過你提到的任何上述內容。你能否給我提供它的語法? – 2012-03-11 04:33:19

+0

不.net 3或.net 4有一個內置的元組類型,所以'SELECT *'可以返回'Tuple <...> []'?也就是說,一組元組而不是一個字符串向量? – moshbear 2012-03-11 04:34:15

+0

List myList = new List (); myList.Add(「a string」); 然後返回列表。 – Bahamut 2012-03-11 04:35:03

0

是你可以在.NET 4.0中使用的元組類。 Forexample,

var population = new Tuple<string, int, int, int, int, int, int>(
         "New York", 7891957, 7781984, 
         7894862, 7071639, 7322564, 8008278); 

OR
var population = Tuple.Create("New York", 7891957, 7781984, 7894862, 7071639, 7322564, 8008278);

有關屬性和元組類功能的更多信息,請訪問:Tuple Class on MSDN