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

33710

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

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

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

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

    90020

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

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

    17610

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

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

    62570

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

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

    13510

    本地部署一个知识库

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

    3.8K20

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

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

    62330

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

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

    73040

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

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

    1.6K30

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

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

    98110

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

    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版本上发现,后来又让别人也测试了一下,发现之前版本也是一样!居然才发现!晕!居然从来没有人写过这个,关注过这个!

    68420

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

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

    54530

    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

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

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

    35020

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

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

    16.9K1604
    领券