在C#中返回多个值

时间:2012-03-11 04:27:46

标签: 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

任何人都可以帮我构建一个可以返回数千个值的代码。

3 个答案:

答案 0 :(得分:4)

您希望使用带有List<String>的迭代器返回IEnumerable<string>(或yield return

答案 1 :(得分:1)

C#语言中的List类型可以解决上述问题。使用List,您无需自行管理大小

    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;
    }

答案 2 :(得分:0)

是的,您可以在.net 4.0中使用Tuple类。 Forexample,

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


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

有关Tuple类的属性和功能的更多信息,请访问Tuple Class on MSDN