gpt4 book ai didi

c# - 创建 IReadOnlyList

转载 作者:行者123 更新时间:2023-11-30 13:14:14 25 4
gpt4 key购买 nike

如何创建 IReadOnlyList<string>有一些值(value)吗?

我找到了 ReadOnlyCollection 的例子这似乎将现有集合转换为 ReadOnlyCollection但这种方法没有奏效。

这是我尝试过的:

var myList = new List<string>()
{
"Hello World!",
"Some more text here"
};

var myReadOnlyList = new IReadOnlyList<string>(myList);

我还尝试将我的字符串值添加到 IReadOnlyList<string> 中在声明期间,但这也不起作用。

创建 IReadOnlyList<string>() 的正确方法是什么?有一些值(value)吗?

最佳答案

IReadOnlyList<string> ,尽管有这个名字,只是意味着“你可以阅读的列表”,它并不意味着“不可变的列表”。列表是否不可变取决于最终实现接口(interface)的具体类。

因此,您应该做什么取决于您的需求。

  1. IReadOnlyList<string> myReadOnlyList = myList; .这是有效的,因为 List<string> implements IReadOnlyList<string> .它不会阻止其他人转换 myReadOnlyList返回List<string> .

  2. IReadOnlyList<string> myReadOnlyList = myList.AsReadOnly(); .这会为原始列表创建一个只读代理。虽然它确实阻止了其他人转换 myReadOnlyList返回List<string> , myReadOnlyList 的内容由于对 myList 的修改,可能仍会发生变化.

  3. IReadOnlyList<string> myReadOnlyList = ImmutableList.CreateRange(myList);这会创建一个 ImmutableList<string> 其中包含原始列表内容的副本,并且不允许进行任何修改。更改为 myListmyReadOnlyList 中不可见.

关于c# - 创建 IReadOnlyList<string>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49115082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com