“有吗?”;记录“;在C#中?

“有吗?”;记录“;在C#中?,c#,.net,visual-studio-2012,record,C#,.net,Visual Studio 2012,Record,我希望在内存中存储一些客户数据,我认为最好的方法是使用一组记录。我不确定这是否是C#中的名称,但基本上我可以调用Customer(I).Name,并将客户名称作为字符串返回。在图灵,它是这样做的: type customers : record ID : string Name, Address, Phone, Cell, Email : string //Etc... end record public class Custom

我希望在内存中存储一些客户数据,我认为最好的方法是使用一组记录。我不确定这是否是C#中的名称,但基本上我可以调用
Customer(I).Name
,并将客户名称作为字符串返回。在图灵,它是这样做的:

type customers :
    record
        ID : string
        Name, Address, Phone, Cell, Email : string
        //Etc...
    end record
public class Customer
{
    public string ID { get; set; }
    public string Name { get; set; }
    public string Address { get; set; }
    public string Phone { get; set; }
    public string Cell { get; set; }
    public string Email { get; set; }
}
我已经搜索过了,但似乎找不到C的等价物。有人能给我指出正确的方向吗

谢谢!:)

看起来您要查找的“类型”实际上是一个类

class Customer {
  string id, name, phone, cell, email;
}

List<Customer> customerList = new List<Customer>();
class客户{
字符串id、姓名、电话、手机、电子邮件;
}
List customerList=新列表();
有关类的更多详细信息,请查看此链接。。。您可能需要做一些研究、阅读和学习:-)


假设您有一个为客户建模的类,您只需使用客户列表即可

var c = new List<Customers>()

string name = c[i].Name
var c=新列表()
string name=c[i].name

好的,这将在C#中的
类中定义,所以它可能看起来像这样:

type customers :
    record
        ID : string
        Name, Address, Phone, Cell, Email : string
        //Etc...
    end record
public class Customer
{
    public string ID { get; set; }
    public string Name { get; set; }
    public string Address { get; set; }
    public string Phone { get; set; }
    public string Cell { get; set; }
    public string Email { get; set; }
}
然后你可以有一个
列表

var customers = new List<Customer>();

customers.Add(new Customer
{
    ID = "Some value",
    Name = "Some value",
    ...
});

更新:如所述,F#中的类提供门外的字段级相等,而不是引用相等。这是一个非常重要的区别。要在C#中获得相同的相等操作,您需要将这个
a
struct
,然后生成相等所需的运算符;这个问题的答案是一个很好的例子。

这里可以使用类或结构

    class Customer
    {
        string Name
        {
            get;
            set;
        }
        string Email
        {
            get;
            set;
        }
    }

    Customer[] customers = new Customer[50];
    //after initializing the array elements, you could do
    //assuming a for loop with i as index
    Customer currentCustomer = customers[i];
    currentCustomer.Name = "This";

创建一个新类来存储这些字段。NET有数组和许多类型的集合。Search MSDN array and collection.2020 update:C#现在有记录类型。
name
对于
客户来说是一个非常奇怪的名称:)
var name=customers[i]看起来很奇怪,不是吗<代码>var客户=客户[i]
会很好。@SriramSakthivel,是的,我想通过访问
Name
属性来结束这句话,就像问题中的OP一样。我后来明白了你的意思,并编辑了我的答案。@user2856410应该注意,虽然该类是公共的,但您可能希望将客户列表从一个表单传递到另一个表单。否则,您必须在每个表单上创建一个新列表并重新填充它。customer类只是存储所有客户信息的“模板”,列表实际上包含了数据中的肉类和蔬菜。@psibernetic:这是一个非常好的添加!我会为以后的阅读更新。