有一个循环来创建结构

时间:2016-06-18 11:01:33

标签: c# c struct

我想在C#中使用struct进行callLog 所以我记得在C中我们有这样的事情:

struct contact
{
string name;
string phone;
}contact_q[200]

为了填写联系人的信息我们有这样的事情:

while(i<200)
{
 scanf("%s",student_q[i].name)
}

所以在C#中我们没有那个声明:在struct的结尾处有“contact-q [200]” 我无法处理填写姓名和电话的循环,因为我们没有这样的东西:

for (int i = 0; i < 10; i++)
            {
                Contacts contact[i]=new Contacts();
            }

它有错误:联系[i]

所以帮助我

3 个答案:

答案 0 :(得分:1)

对于C#中的解决方案,您已经非常接近正确的语法。尝试中有问题的部分是循环中的赋值。

执行以下操作,您的代码应该编译并运行:

Contacts[] contacts = new Contacts[10];
for (int i = 0; i < contacts.Length; i++)
{
     contacts[i] = new Contacts();
}

请注意,结构的名称(Contacts)有点不幸。它代表单个联系人,但其名称暗示它包含多个联系人 s 。所以,我将C#-struct从Contacts重命名为Contact(正如您在C ++示例中所做的那样)。

答案 1 :(得分:0)

在C#中首先声明数组

 fixed Contacts contact[10];  // fixed array

 Contacts contract[] = new Contracts[10];  // dynamic array

然后在循环中

 contact[i]=new Contacts();

你对C的记忆有些错误BTW实际上是

typedef struct contact
{
  string name;
  string phone;
} contact_q[200]

typedef很重要 - 正在创建一个类型(contact_q)

答案 2 :(得分:0)

你想要一个struct的数组。 可能有用的是

struct contact {
  string name;
  string phone;
}

struct contact contact_q[200];

然后简单地指定

contact_q[i].name=...

或使用while循环。 您还可以typedef

typedef struct contact {
  string name;
  string phone;
} contact_it;

contact_it contact_q[200];

参见,例如,

How do you make an array of structs in C?