首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我可以拥有一个不可变的IEnumerable <>吗?

当然可以。在C#中,可以使用System.Collections.Generic.List<T>System.Collections.Generic.HashSet<T>来创建一个不可变的IEnumerable<T>。以下是一个示例:

代码语言:csharp
复制
using System;
using System.Collections.Generic;

public class ImmutableEnumerable<T> : IEnumerable<T>
{
    private readonly List<T> _list;

    public ImmutableEnumerable(IEnumerable<T> items)
    {
        _list = new List<T>(items);
    }

    public IEnumerator<T> GetEnumerator()
    {
        return _list.GetEnumerator();
    }

    System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }
}

使用这个类,您可以创建一个不可变的IEnumerable<T>,如下所示:

代码语言:csharp
复制
var items = new[] { 1, 2, 3, 4, 5 };
var immutableEnumerable = new ImmutableEnumerable<int>(items);

foreach (var item in immutableEnumerable)
{
    Console.WriteLine(item);
}

这将创建一个不可变的IEnumerable<int>,您可以使用foreach循环遍历其中的元素。请注意,这个实现不会阻止您通过引用直接修改原始列表。如果您需要更严格的不可变性,请考虑使用`System.Collections.ObjectModel.ReadOnlyCollection

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Nature:实验室培育大脑可以拥有意识

大数据文摘出品 来源:nature 编译:朱科锦、lin 一直以来,对于科学家来说,人脑都是一个神奇存在,关于人脑研究也层出穷。...近几年,随着人工智能发展,很多科学家都在努力探索,未来机器人是否能拥有意识?未来或许可以,这就需要我们先对人脑进行更进一步研究。...相比之下,最近被杀完整大脑更有可能拥有意识必要结构,以及动物活着时记忆和经历所创造神经线路。...但是他说,在没有一个完全功能大脑情况下研究人类大脑疾病,就像研究一个不能产生胰岛素胰腺。“要做到这一点,需要一个真正像人类大脑大脑器官模型。可能需要一个有意识器官。...他项目部分由微软资助,其目标是创造一个像人类意识一样工作的人工系统。 目前,美国和欧洲都没有规定可以阻止研究者创造意识。

34410

问你这篇保熟?! -- 做服务端开发,不懂网络层,真的可以

想明白了这些,还是抓一个方向学下去吧,至少不要把老本都丢了呀。 做服务端开发,不懂网络层,真的可以? 有机会学就学呗,想那么多。 ---- 网络层简介 首先,TCP属于传输层,IP属于网络层。...ARP对保存在高速缓存中一个地址都有设置一个失效时间,这个应该不难理解吧,写出来就是怕你们以为写就是没有,其实是有这个机制,容量很安全,放心。...划分子网基本思路如下: 1)一个拥有许多物理网络单位,可以将所属物理网络划分为若干个子网。...如果划分子网,就用默认子网掩码: 子网掩码是一个网络或一个子网重要属性。...这篇保熟

90720
  • 是不会运行你代码是不会导入自己数据!

    简单省事、便携可重复;这是内置数据优势之一; 内置数据模式清晰,通常可以获得较好结果;这是内置数据优势之二; 别人用这个,也用这个,这是一个偷懒做法。 每个人常识不同。...如果要使用内置数据,也需要额外提供一些信息: 详细描述内置数据格式和生物含义,及与真实数据对应,可以参考画一个带统计检验PCoA分析结果 提供真实数据格式示例和读入真实数据代码,弥补这个“鸿沟...从dim(dune)可以看出这是一个20行X30列矩阵;可以推测出,每一行是一个样品,每一列是一个物种 (另一个佐证是列名字长度确实为8个字符,与物种名字4+4缩写一致)。...otu_table <- read.table("otutable_rare",sep="\t", row.names=1, header=T) 根据上面的分析做一个转置,就可以获得可用于后续分析输入数据了...这里涉及到另外一个经常会被问起问题: 这一步操作需要提供原始数据,还是标准化之后数据? 绝大多数情况下,我们需要提供都是标准化之后在不同样品之间可比数据。

    1.4K10

    米老鼠版权到期,可以用在游戏里

    同时,米老鼠每个版本可以单独构成一个作品,因此目前已到期仅仅是1928年版本米老鼠(以下简称为“初版米老鼠”),迪士尼公司后续创造多个版本米老鼠(包括身穿标志性白手套、红裤子和黄靴子经典形象...例如,在著作权法范围内,游戏公司可以在不经迪士尼公司许可情况下,自由制作以公域米老鼠为外观游戏角色皮肤并发布在游戏中;电影公司可以在不经迪士尼公司许可情况下,使用公域米老鼠制作动画电影。...对于每一个创作者而言,到期作品亦是创作灵感和激情重要源泉。...严格使用到期版本,加大与保护期内版本差异 如作品存在多个版本,在决定取得授权情况下,应当严格确保使用是到期版本,并考虑对到期版本进行进一步设计,加大其与保护期内版本差异。...回到标题问题: 在取得迪士尼公司事先许可情况下,游戏公司如果选择使用公域米老鼠形象制作游戏内容,在适当标注迪士尼公司为作者,不进行歪曲、篡改前提下,著作权侵权风险较小;如不作商标性使用,商标侵权风险较小

    20610

    吴恩达:天下武功唯快破,成功可以复制

    他说他在百度主要工作,就是搭建一系列团队,来构建潜在AI相关业务。他相信:与其他创业项目相比,AI创业可重复性更高。 另外,吴恩达还说:“建立公司一个哲学就是速度很重要”。...在官方声明中,吴恩达表示“六个月时间足以决定一个AI方案是否能在竞争中占据优势”,而这支基金一个作用,就是能让创业团队专注向前跑,让“研究进展尽快进行”。...吴恩达先生在供职于百度期间,深受国内创业精神影响。上述吴恩达披露信息,如果也用中国创业界流行“术语”总结,大概就是两句话: 天下武功唯快破,成功可以复制。...而且,第一个创业项目DeepLearning.ai,可以不断为新公司培养所需的人才。 完美。 这套整体性思路,大家一定要掌握。 如果,你还不是很清楚吴恩达一步一步策略,下面我们再详细回顾一下。...吴恩达希望创造最简单方法,让学生可以在AI及其应用领域作出贡献,进而应对全球范围内挑战。

    63570

    instantbox —1分钟就可以拥有一个轻量linux

    今天要来介绍一个轻量级docker项目。该项目通过利用虚拟化技术,使用户能够在几分钟内获得一个全新 Linux 环境,无需进行繁琐安装和配置过程。...这个项目的目标是为开发者、研究人员和学生等提供一个即插即用工具,以满足他们临时性开发和实验需求。...今天分享项目是instantbox ,它可以让我们在几秒钟时间获得一个干净,可用linux环境,项目是基于docker可以理解是用docker启动了一个很简洁,干净linux发型系统。...创作不易,如果您觉得这篇文章对你有帮助,不妨给我点个赞,这将是继续分享优质内容动力。...准备了一个导航网站,上面记录了一些常用网站集合,也包含一些羊毛,应该可以帮到你,感兴趣可以访问:https://u1s1.one/ ,欢迎收藏使用

    14510

    本地部署一个知识库

    大家好,是热爱写文档开源大叔! 相信我读者朋友们都是热爱学习小伙伴,大叔也是,习惯于在学习过程中,记录一些重点知识,保存成一篇篇文档。有时也会记录平日工作中技术方案和工作中遇到问题。...所以是时候把刚发现一款开源知识管理工具介绍给大家啦! 项目简介 Think(云策文档)是一款开源知识管理工具,用户可以通过独立知识库空间,对知识进行积累和沉淀。...对 Think 试用了一段时间后,发现它有着以下优点: 操作界面简洁,符合现代编辑器操作习惯,和语雀界面非常相似。书写文档过程很舒畅,且支持Markdown 文档格式。...注册登录后,我们可以新建一个知识库。 创建知识库成功后,可以新建文档,这里也可以选择已有的模板。 你可以在文档里插入各种元素,比如倒计时、代码块、流程图、思维导图,应有尽有。...也可以在知识库界面查看选择自己创建知识库: 总结 好啦,这个项目就先介绍到这里了,如果大家感兴趣,可以自己去尝试一下。

    4K20

    TBtools | 又是眠夜,实现了一个“伟大”想法。~

    所以,我们常常可以看到,大多数有趣东西,往往是别人业余所为。 扯远了,回到主题。...就个人而言, 约莫有一周了,那天洗澡时候突发奇想,TBtools界面版这么130+个功能,是不是干脆实现一个搜索框,方便快速打开某个指定功能?。...这个解决办法,其实随处可见,比如操作系统文件检索,搜索引擎网页检索,那么TBtools可以搞个功能检索?之前为什么没想到? 都没时间想,怎么会想到?...正如一个朋友说,他修学位时根本没有想不开,因为没时间想啊。 于是,既然睡不着,干脆实现了。 TBtools功能搜索姿势 虽然自认为,这个功能无需演示。...首先,更新你 TBtools 到最新版本,随后打开 TBtools。 ? 可以发现,相比于以前版本,在右上角有一个明显搜索框。注意,放大镜图标是直接从代码画两个圆再画几根线组成,略丑萌。

    63130

    LIME:可以解释任何一个分类模型预测结果

    LIME:可以解释任何一个分类模型预测结果 ? image-20210630115214018 论文标题:“Why Should I Trust You?”...例如,对于文本来说,就是某个词是否出现这样特征,对于图像来说,就是某个区域是否出现。 画了一个图来示意这个转化过程: ? 如何转化 2....对于复杂度的话,本文使用了一种近似的更简单方法:先用LASSO算法来控制线性模型非零特征个数,再直接优化上面的L即可。 再画一个图来示意LIME训练过程: ?...g各个w可以可视化出来,看出不同特征贡献程度。比如下面的例子: ? 通过对两个模型,在同一个样本上解释,我们可以发现第一个模型解释性更好,因为找到了正确特征。...因此,作者还思考了,如何用最高效率,检查最少样本,就能够最全面地检查模型可靠性。 具体方法,暂时不关心,所以就不讲了。下图给出了一个大致思路: ?

    1.6K30

    重构 -- 一个类,难道不配有专属测试代码

    这点我以前确实没想过 刚看到这个观点时候,是很不以为然,谁让它标题吸引人>>>《构建测试体系》 就这标题,谁不知道要测试啊。还好没有“以貌取文”,认真的看了下去。...但是项目run时候爆了烦不烦?那会儿可就不是一个人烦了,那是一个团队一起烦。 就比方说上次我们服务器客户端对接测试一个项目,中间数据传输出问题了,好了,现在是谁问题都不知道。。。...这种问题其实完全可以避免,甚至可以不发生,只要给每个类配备一个测试代码。 写一个测试代码能花多少时间,十分钟,测试一下能花多少时间,十分钟。害怕测出问题?...那有问题就是有问题啊,专项解决不是效率更高!!! 行吧,写,那怎么写啊? 怎么写那是个人自己事情。...但是,想说是,测试代码,最好写在功能类之前,这样可以预先界定功能类具体功能,也可以把思路清晰一下。 至于测试代码要测试哪些东西?

    73240

    使用RNNNLP —您可以成为下一个莎士比亚

    可以将文本中字母转换为数字,并将其输入RNN模型中,以产生下一个可能结果(诸如预测之类声音,对?) RNN变化 ?...该复位门是用来决定多少过去信息忘记另一个门。 现在哪一个有好处?一个简单RNN,LSTM,GRU?就像生活中所有事物一样,没有什么是明确。一切都取决于用例,数据量和性能。...将开发一个模型,该模型使用先前字符序列来预测下一个最高概率字符。必须谨慎使用多少个字符。一方面,使用很长序列将需要大量训练时间,并且很可能过度适合与字符集无关字符序列。...在第18个时代获得最高准确度是86.03%。因此已经将模型训练了18个时期。 生成文字 定义一个函数(固定种子)以使用1序列生成文本。...理想情况下,还可以查看虚假在线文章,甚至虚假WhatsApp新闻(尤其是在选举期间)。

    99110

    业务用例研究组织可以在同一个建设系统中可以变化

    2013-02-08 9:44:15 上孙安俊(359***041) 请问大家一个问题,业务用例研究组织可以在同一个建设系统中可以变化?...2013-02-08 9:44:51 潘加宇(3504847) 没有必要变化了 2013-02-08 9:46:55 潘加宇(3504847) 这个划定范围,能把你要改进场景被包在里头就可以。...2013-02-08 9:51:42 潘加宇(3504847) 部门就可以了,把这些场景组织到部门用例下面 2013-02-08 9:54:44 潘加宇(3504847) 既然改进范围波及整个部门,...-08 11:04:09 潘加宇(3504847) 上面讲不知道是否理解了?...2013-02-08 11:11:15 潘加宇(3504847) 请假本身不是部门用例,但会影响部门某些用例实现,把请假作为一个场景放在这些用例下面。

    2.7K30

    震惊 | OpenCVbug又发现了一个

    大家好,最近一直写东西,结果无意中又有了新发现,这次主要是针对OpenCV中Mat对象创建。...以前经常写代码是: // create Matlab风格 - 5 Mat m5 = Mat::ones(Size(4, 4), CV_8UC1); std::cout << "m5:\n" << m5...<< std::endl; 发现工作良好,全部初始化为1,那天也不知道自己怎么想,就想创建一个三通道全是1: // create Matlab风格 - 5 Mat m5 = Mat::ones...三通道中只有1个通道被初始化为1,其它居然还是0,觉得要检查一下以前写代码,记得写了很多这种创建方式。这个是不是OpenCV挖下一个大坑啊!...最后,是在OpenCV4.2版本上发现,后来又让别人也测试了一下,发现之前版本也是一样!居然才发现!晕!居然从来没有人写过这个,关注过这个!

    68820

    Lipson:要亲自打造一个外星人——拥有自我意识机器

    你认为 AI 会有意识拥有自我意识机器人离我们还有多远?欢迎来新智元和群发表观点。...“想在有生之年见到一个外星人,”哥伦比亚大学创意机器实验室机器人专家霍德·利普森(Hod Lipson)说:“想认识一些非人类智慧生物。”...这就是我们要做事情:我们观察了一些非常琐碎东西,一个有四个自由度机器人,并试图回答,“我们能让这个东西自我模拟?”...机器人是符合这些条件一个非常自然存在。它有动作,有感觉,并且有边界,所以可以有事情发生在它身上,有东西可以让它模拟。是机器人专家,这是第一选择。...如果它是一个拥有800个自由度的人形机器人,对于我们今天所拥有的人工智能而言,可能太过复杂了。 如果这真的是一种自我意识形式,那么机器人为什么应该拥有它?它有什么用它使机器人最终更具弹性。

    55830

    C#学习笔记七: C#4.0中微小改动-可选参数,泛型可变

    可选参数重在"可选", 即在调用方法时, 该参数可以明确指定实参, 也可以指定实参.如下代码: 1 class Program 2 { 3 static void Main() 4...这就是可选参数好用之处, 特别是对于一个系统后期维护很好使用, 在真实项目中也使用过这样用法, 如下例: 在我们做系统中切换User有SwitchUser(lougout当前user,然后添加新...而在C#4.0中引入了泛型协变性和逆变性. 2.1协变性 协变性指的是泛型类型参数可以一个派生类隐式转化为基类....又因为类型参数支持协变性, 所以可以进一步把IEnumerable转化为IEnumerable 2.2逆变性 逆变性指的是泛型类型参数可以一个基类隐式地转化为派生类,C...听说 Are you out of your mind? 你疯了吗? Are you pulling my leg? 你在开玩笑? As far as I'm concerned. 就而言

    1.4K80

    【玩转 EdgeOne】个人酷炫3D博客可以用EO加速

    ,使用户可以就近获得所需内容。...配置缓存策略操作方法,请参见缓存配置。 4.什么样网站适合用 CDN? 一个微信小程序,可以用 CDN 加速一个分享图片个人摄影作品网站,可以用 CDN 加速??...一个...... 可以用 CDN 加速??? 想要知道一个网站或者 APP 或者小程序能不能用 CDN 加速? 首先,要明白我们网站内容是什么类型。...5.下一步后会推荐你一些配置,需要根据自己情况进行配置,是加速博客所以选择了第一个。...6.然后我们,将得到域名配置信息,到域名管理那块,进行配置 7.解析好了后,点击完成,就可以等待EdgeOne部署了。

    16.9K1604

    做了一个系统,可以给所有飞过我家上空飞机拍照

    比如,你能想象,一个飞机迷,为了拍下每架从他家上空飞过飞机,亲手做了一个小系统skybot,追踪拍摄到离地3万多英尺航空飞机。...如何做一个skybot系统 不知道有多少小伙伴已经开始动心跃跃欲试了。 别急,我们先来看看做一个skybot需要哪些东西:一个树莓派,一个RTL-SDR和Axis PTZ安全摄像头。...Axis摄像机提供了一个很棒API,它可以与他们家PTZ摄像机一起使用,在这里使用是m5525,因为摄像机可以360度旋转,完美覆盖天空上方视野。...该信号为1090MHz,任何低成本SDR都可以轻松接收。同时从ADS-B传输中,我们还可以得到飞机位置和高度,但如果你想知道飞机和你相对位置,就还需要一点数学知识。...PiAware实际上只是一个dump1090包装。Dump1090是一个小程序,可以使用RTL-SDR接收ADS-B传输。

    35620
    领券