2012-03-11 135 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