【问题标题】:C#: How to initialize a record that has a List?C#:如何初始化具有列表的记录?
【发布时间】:2022-11-12 11:06:40
【问题描述】:

有一个问题,我希望很容易回答!

我现在正在自学 C#——到目前为止我确实了解 JavaScript 和 PHP。我一直在努力解决的一件事是如何处理 List<>、Dictionary<> 等,关于实际启动这些事情 - 如果这有意义的话。

例如,我有记录:

 record Beat(string beat, int note, List<int> loc, bool powerup);

但我最难的是真正宣布这个记录。例如,我试过这个:

Beat beat = new Beat("00:00", 2, [200,400], true);

甚至

Beat beat = new Beat("00:00, 2, new(200,400), true);

这两者都会产生错误,我只是不知道我应该如何声明它。

所以我感谢任何帮助或指向正确的方向。我试着用谷歌搜索它,但无法正确地表达查询! :)

【问题讨论】:

    标签: c# monogame


    【解决方案1】:

    对于列表,您需要创建一个新列表,并(可选)向其中添加内容。

    前任:

    Beat beat = new Beat("00:00", 2, new List<int> { 200, 400 }, true);
    

    或者,如果您要将参数更改为ICollection&lt;int&gt;,您将拥有更多的灵活性,并且您可以使用数组语法,这样可以减少输入

    Beat beat = new Beat("00:00", 2, new [] { 200, 400 }, true);
    

    【讨论】:

    • 在这种情况下,我认为 IReadOnlyCollection&lt;T&gt;ICollection&lt;T&gt; 更可取,尤其是因为它是协变的,而 ICollection&lt;T&gt; 是不变的。
    猜你喜欢
    • 2014-07-01
    • 2021-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多