C#中有“记录”吗?

2024-01-03

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

type customers :
    record
        ID : string
        Name, Address, Phone, Cell, Email : string
        //Etc...
    end record

我已经搜索过,但似乎找不到 C# 的等效项。有人能指出我正确的方向吗?

谢谢! :)


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

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

那么你可以有一个List<T>那些:

var customers = new List<Customer>();

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

然后如果您愿意,您可以通过索引访问它们:

var name = customers[i].Name;

UPDATE:如所述psibernetic https://stackoverflow.com/users/909954/psibernetic, the Record http://msdn.microsoft.com/en-us/library/dd233184.aspxF# 中的类一开始就提供字段级别相等性,而不是引用相等性。这是一个非常重要的区别。要在 C# 中获得相同的相等运算,您需要这样做class a struct然后产生相等所需的运算符;找到了一个很好的例子作为这个问题的答案为了确保相等性正常运行,需要重写结构中的哪些内容? https://stackoverflow.com/questions/1502451/what-needs-to-be-overriden-in-a-struct-to-ensure-equality-operates-properly.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#中有“记录”吗? 的相关文章

  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 重载<<的返回值

    include
  • IEnumerable 与 IReadOnlyList

    选择有什么区别IEnumerable
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 有人可以解释 Javascript 中 .indexOf() 的逻辑吗?

    function vowelsAndConsonants s var vowels a e i o u for let i 0 i
  • win32gui 获取当前活动应用程序名称

    我刚刚学习Python 对它来说相对论还很陌生 我创建了以下脚本 它将获取当前活动窗口标题并将其打印到窗口 import win32gui windowTile while True newWindowTile win32gui GetWi
  • Rails - 查看日志文件中生成的 SQL 查询

    有没有一种方法可以像在开发中一样在生产环境中查看 Rails 生成的所有查询 是的你可以 如果您进入 config environments production rb 文件 会有这样的部分 See everything in the lo
  • CSRF 令牌在登录期间过期

    我正在开发 Spring Web 应用程序 我需要避免登录页面上的 csrf 令牌过期问题 因为如果用户等待太长时间并尝试登录 解决 csrf 问题的唯一方法是重新加载页面并尝试再次登录 但这对用户不友好 我想避免这种情况 第一个问题 一般
  • 有什么方法可以以编程方式选择 TextView 中的文本吗?

    我有一个TextView我希望允许用户搜索特定的字符串 如果找到该字符串 它应该突出显示 使用背景跨度太慢而且很尴尬 所以我想弄清楚是否可以让它选择字符串 我知道与EditText这可以使用setSelection 但我不希望用户能够编辑文
  • 富文本框到字符串

    我有一个绑定到菜单项的富文本框 以允许粗体 斜体和下划线以及剪切 复制和粘贴 但是如何获取 RichTextBox 内容并将其从代码隐藏转换为字符串哪个将带有粗体 斜体等
  • 使用 Alamofire 处理超时

    是否可以为 Alamofire 请求添加超时处理程序 在我的项目中 我这样使用 Alamofire init let configuration NSURLSessionConfiguration defaultSessionConfigu
  • 我需要将 constexpr 放在 else-if 之后吗?

    灵感来自这个答案 https stackoverflow com a 52355930 7151494 我尝试复制并粘贴 并在中添加测试main 这段代码 template
  • Perl 5 中存在哪些伪运算符?

    我目前正在记录 Perl 5 的所有运算符 请参阅佩洛普夫 http github com cowens perloprefGitHub 项目 我决定也包含 Perl 5 的伪运算符 对我来说 Perl 中的伪运算符是任何看起来像运算符的东
  • C - 取消引用空指针

    我正在尝试创建自己的交换函数 但遇到了麻烦 为什么我收到 取消引用空指针 void ft swap void a void b size t nbytes unsigned char cur a unsigned char cur b si
  • IBM Worklight - 页面碎片

    我正在尝试将现有的phonegap 项目迁移到worklight 中 Phonegap 应用程序使用 mobile changePage 进行页面导航 这个函数会重新加载现有的 DOM 还是创建一个新的 DOM 由于worklight建议使
  • yii2详细视图条件行类

    我想根据条件更改详细视图中单个属性的类 如果我不想让它成为有条件的 它会像这样工作 attribute gt ungueltig format gt boolean contentOptions gt class gt danger 我希望
  • 无法调试 dotnet core GenericHost docker 容器

    我在最新的 Windows 版本 Windows 10 2004 上使用 Linux 容器 并启用了 WSL 2 和 Docker Desktop 2 3 0 3 45519 我右键单击 docker compose 文件 然后选择Set
  • Android:将数组保存到应用程序数据

    是否可以将整个数组 甚至ArrayList 保存到android应用程序数据中 据我所知 你只能做像 putInt putBoolean 或 putString 这样的事情 但是更复杂的数据类型呢 有没有办法做到这一点 或者我是否必须先将整
  • C 通用数组实现

    我正在尝试在 C 中实现通用数组列表 但是 当数据类型是 int 以外的任何类型时 列表将不会包含正确的数据 例如 像 123 1234 作为双精度数 当将双精度数传递到列表中时 它将变成 000 0000 一 当数据类型为int时 它将有
  • python中如何输入输入的数字

    我想内联输入 1 input number 5 2 1 5 3 4 2 python中如何接收输入数量的输入 我已经尝试过这样的 num int input inputs num mlist for i in range num n int
  • 如何将 Hive 与 Power BI 连接

    我无法将 Hive 视为 power BI 中列出的数据源 有没有办法将Hive数据库与power bi桌面连接 还有有什么限制吗 应在系统中安装并配置 Hive ODBC 驱动程序 以便与 Power BI 连接 成功配置 ODBC 驱动
  • AngularJS 事件未从 $rootScope 触发

    我遇到了 rootScope broadcast 事件未被触发的问题 App run function rootScope var text Not So Static Now rootScope broadcast event stati
  • 在 Android 中使用经过训练的 Scikit-learn svm 分类器 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在开发一个 Android 应用程序 它使用手机中的传感器数据对活动进行分类 与任何 Java 机器学习库相比 我也更喜欢 sci
  • C#中有“记录”吗?

    我希望将一些客户数据存储在内存中 我认为最好的方法是使用记录数组 我不确定这是否是 C 中的名称 但基本上我可以调用Customer i Name并将客户姓名作为字符串返回 在图灵中 它是这样完成的 type customers recor