如何在c#中传递struct的值列表

时间:2012-08-09 16:22:01

标签: c# asp.net arrays struct

我知道如何传递数组中的值列表

   int[] unit = new int[] {1,-3,3,4};
        string[] letter_grade = new string[] {"a+","B","c","W"};
        double totalGPA;
        GPA get = new GPA();
        get.getgpa(unit, letter_grade ,out totalGPA);

但我想知道如何使用结构传递它我可以发送单个值但不知道如何发送值列表

         double totalGPA;
        GPA get = new GPA();
        GPAList[] Val = new GPAList[1];
        Val[0].grade ="d";
        Val[0].unitgrade = 4;
        get.getgpa(Val[0], out totalGPA);

2 个答案:

答案 0 :(得分:1)

您只需将struct array Val传递给getgpa:

get.getgpa(Val, out totalGPA);

然后getgpa应接受一系列GPA结构:

void getgpa(GPA[] gpas, out double totalGPA)

答案 1 :(得分:0)

据我所知,您希望使用struct传递一组值。

结构不是用于存储集合,对于集合,我们在c#中有数组,arraylist,hashtable等。

结构的目的是将完整信息表示为单个数据类型。结构只是轻量级类,它们不能用于集合。

如果你想使用结构来存储值的集合,那么你必须再次制作结构数组。

如果你想传递一个结构的数组,那么在形式参数列表中,你应该期望该结构的数组本身,例如。

**get.getgpa(Val, out totalGPA);**

要使上述代码起作用,getgpa函数的签名应为:

**getgpa(GPA[] arr,out double totalGPA)**

希望这有帮助。