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

我怎样才能只暴露一个IList <>的片段?

您好!您想要暴露一个IList<>的片段,这里我们可以使用LINQ(Language Integrated Query)来实现。

LINQ是一种强大的查询技术,它允许您使用C#或VB.NET编写类似于SQL的查询语句,以便从IList<>中检索和操作数据。以下是一个示例,展示了如何使用LINQ从IList<>中检索一个片段:

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

class Program
{
    static void Main(string[] args)
    {
        IList<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

        // 检索IList<>中的片段,例如从索引2开始的3个元素
        var slice = numbers.Skip(2).Take(3);

        // 输出结果
        foreach (var number in slice)
        {
            Console.WriteLine(number);
        }
    }
}

在这个示例中,我们首先创建了一个包含1到10的整数列表。然后,我们使用LINQ的Skip()和Take()方法来检索从索引2开始的3个元素。最后,我们使用foreach循环输出结果。

如果您想要根据特定条件来检索IList<>中的片段,可以使用LINQ的Where()方法。例如,以下代码将检索所有偶数:

代码语言:csharp
复制
var evenNumbers = numbers.Where(n => n % 2 == 0);

希望这个答案能够帮助您解决问题!如果您有其他问题,请随时提问。

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

相关·内容

31天重构学习笔记1. 封装集合

当然重构整体架构得另当别论(整体架构在这篇文章有专门讲解(http://www.cnblogs.com/zenghongliang/archive/2010/06/23/1763438.html...那么这些文章也都是学习Sean Chambers31天重构笔记整理,所以如果大家对这个笔记有任何异议也可以指出。...概念:本文所讲封装集合就是把集合进行封装,只提供调用端需要接口。 正文:在很多时候,我们都不希望把一些不必要操作暴露给调用端,只需要给它所需要操作或数据就行,那么做法就是封装。...比如最经典属性对字段封装就是一个很好例子,那么下面我们将看到对集合封装,如下代码所示,调用端只需要一个集合信息,而我们则提供了一个IList集合,大家都知道IList具有对集合所有操作,所以这会带来很多隐患...换成了IEnumerable,大家都知道包括一个返回值为IEnumeratorGetEnumerator()方法,所以这样只能遍历取出它值,而不能对这个集合做出改变,这正是我们所需要结果,具体代码如下

48720

31天重构学习笔记1. 封装集合

当然重构整体架构得另当别论(整体架构在这篇文章有专门讲解(http://www.cnblogs.com/zenghongliang/archive/2010/06/23/1763438.html...那么这些文章也都是学习Sean Chambers31天重构笔记整理,所以如果大家对这个笔记有任何异议也可以指出。 概念:本文所讲封装集合就是把集合进行封装,只提供调用端需要接口。...正文:在很多时候,我们都不希望把一些不必要操作暴露给调用端,只需要给它所需要操作或数据就行,那么做法就是封装。这个重构在微软代码库也经常遇到。...比如最经典属性对字段封装就是一个很好例子,那么下面我们将看到对集合封装,如下代码所示,调用端只需要一个集合信息,而我们则提供了一个IList集合,大家都知道IList具有对集合所有操作,所以这会带来很多隐患...换成了IEnumerable,大家都知道包括一个返回值为IEnumeratorGetEnumerator()方法,所以这样只能遍历取出它值,而不能对这个集合做出改变,这正是我们所需要结果,具体代码如下

544110

ASP.NET Core MVC应用模型构建: Action选择

如下面的代码片段所示,这是一个Model类型为ActionModel强类型View,,它将ActionModel承载元数据呈现在一个表格中。...五、实例演示:选择器模型构建 对于DefaultApplicationModelProvider为Controller类型或者Action方法构建SelectorModel逻辑,想针对具体场景会更好理解一点...如代码片段所示,这个是一个Model类型为IList强类型View,我们将提供用于描述选择器每个SelectorModel对象元数据信息呈现在表格中。...Action方法Foo上两个IActionHttpMethodProvider特性并没有提供任何路由信息,所以它具有一个AttributeRouteModel属性为NullSelectorModel...根据标注HttpPostAttribute特性针对SelectorModel对象创建与上面一致,所以我们现在关注针对RouteAttribute特性创建SelectorModel对象。

10610

行为型模式:迭代器模式

它提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象内部细节。 (来自《设计模式之禅》) 你要故事 大家伙听歌频率高么?是不是经常听歌曲来放松心情?...是经常会听歌,心情不好时候听歌,心情好时候也听歌。。。今天讲迭代器模式,我们就拿听歌这件事来说说,大家都知道听歌有几种模式:单曲循环、列表循环、随机等等。。。...现在网易云音乐还多了一个心动模式。 既然说到迭代器模式,那这里就要着重讲讲列表循环这个听歌模式,其他就先抛到脑后。在列表循环中,歌曲从第一条播放到最后一条,也就是一个遍历歌单过程。...没有用 Java 自带容器来存放歌曲,这里实现了一个自定义容器接口 IList1,定义 SongList1 来做歌曲容器,为什么不用 Java 自带 ArrayList 等等?...而 IList2 接口则比 IList1 接口多了一个获取迭代器方法 iterator(),这让网易云音乐在遍历歌单时候,不用直接使用 songList 来遍历,而可以通过 songList.iterator

34050

设计模式征途—21.迭代器(Iterator)模式

我们可以将电视机看做一个存储电视频道集合对象,通过遥控器可以对电视机中频道集合进行操作,例如返回上一个频道、跳转到下一个频道或者跳转到指定频道等。...为了更加方便地操作这些聚合对象,同时可以很灵活地为聚合对象增加不同遍历方法,也需要类似于电视机遥控器一样角色,可以访问一个聚合对象中元素担忧部需要暴露内部结构,这就是我们需要学习迭代器模式。...在上图中,IList类型对象objects用于存储数据,AbstractObjectList类方法说明如下表所示: ?...解决方案之一就是将聚合类中负责遍历数据方法提取出来,封装到专门类中,实现数据存储和数据遍历分离,无须暴露聚合类内部属性即可对其进行操作,这正是迭代器模式意图所在。...4.3 应用场景   (1)访问一个聚合对象内容而无须暴露内部表示。   (2)需要为一个聚合对象提供多种遍历方式。

37820

关于B+tree (附python 模

而且b+tree才是目的,更加深入理解文件和数据库索引基本原理。 在之前,一直把b+tree当成是btree一种变形,或者说是在某种情况下一种优化,另外一些情况可能还是btree好些。...一个节点内数据数量比硬盘指针数量少一,可以说和指针数量几乎相等。...另外,b+tree还有一个特点是所有数据都存放在叶子节点,这些叶子节点也可以组成一个链表,并把这个链表表头拿出来,方便直访问数据。有些文章认为这对于范围搜索来说是个巨大优化。...在相同大小范围搜索性能,取决于访问顺序连续性。从树根向下遍历,那么一次可以取得大量子节点范围,并针对这些节点做访问排序,得到更好访问连续性。...1.内节点不存储key-value,存放key 2.沿着内节点搜索时候,查到索引相等数要向树右边走。

57420

Java泛型中 和

extends Object>相似和不同。但是,这应该是一个比较高端大气上档次Question, 在我们进行深入探讨之前,有必要对Java泛型有一个基础了解。如果还不了解,请看上一篇文章!...泛型填补了这个空白,代码如下: List iList = new ArrayList(); iList.add(1); iList.add("a_string"); // compile...而且,不需要显式转换,因为编译器已经知道 iList 包含 Integer类型数据。另外,由于自动拆箱关系,我们甚至不需要使用 Integer 类型,它原始类型就足够了。 2....类似地,在下面的代码片段中,第1行编译,但第2行不编译: List[] arrayOfList = new List[1]; List<? ...2020-11-18 扫一扫,关注 一起学习,一起进步 每周赠书,福利不断 ﹀ ﹀ ﹀ 深度内容 推荐加入

66230

配置:配置数据与数据源实时同步

在《配置模型总体设计》介绍配置模型核心对象时候,我们刻意回避了与配置同步相关API,现在我们利用一个独立文章来专门讨论这个话题。...换句话说,配置数据在整个模型中以配置字典形式存储在IConfigurationProvider对象上面。 ? 应用程序在读取配置时产生数据流基本体现在上图中。...从如下代码片段可以看出,ConfigurationReloadToken与CancellationChangeToken具有类似的定义和实现。...四、ConfigurationSection对象 如下所示代码片段大体上体现了代表配置节ConfigurationSection类型实现逻辑。...如下面的代码片段所示,一个ConfigurationSection对象通过代表配置树根ConfigurationRoot对象和当前配置节在配置树中路径来构建。

72850

深入解析ASP.NET Core MVC应用模块化设计

如代码片段所示,该接口定义了唯一GetApplicationParts方法从指定程序集中解析出表示应用组成部分一组ApplicationPart对象。...如代码片段所示,DefaultApplicationPartFactory类型实现GetDefaultApplicationParts方法返回ApplicationPart集合中包含根据指定程序集创建...如代码片段所示,该接口定义了唯一PopulateFeature方法来“完善”预先创建特性对象(feature参数),该方法作为输入一个参数(parts)表示应用所有组成部分ApplicationPart...特性,那么作为应用ApplicationPart程序集包含A、B和C。...如下面的代码片段所示,当AddMvcCore扩展方法被执行时候,它会重用已经注册ApplicationPartManager实例。

15610

ASP.NET Core 实战:基于 Dapper 扩展你数据访问方法

、读取,定义了一个 IDataRepository 接口,DataRepository 继承于 IDataRepository 实现对于 SQL 语句操作。...DataAccess 是接口实现类,通过下面的几个类进行隐藏,不直接暴露给外界方法。一些接口实现如下所示。...整个调用过程如下图所示。 ?   在 SecretDomain 中,定义了一个 GetUserForLoginAsync 方法,通过帐户名和密码获取用户信息,调用了之前定义数据访问方法。...因为,数据库表并没有设计好,这里只是建了一个实验用表,,这里使用是 SQL Server 2012,创建表 SQL 语句如下。...三、总结    这一章主要是介绍下是如何使用 Dapper 构建数据访问帮助方法,每个人都会有自己编程习惯,这里只是给大家提供一个思路,适不适合你就不一定啦。

1.7K30

ASP.NET Core MVC应用模型构建: Controller收集

从编程角度来看,一个MVC应用是由一系列Controller类型构建而成,所以对于一个代表应用模型ApplicationModel对象来说,它核心就是Controllers属性返回一组ControllerModel...我们照例通过一个简单实例来演示应用模型中用以描述Controller元数据采用默认构建规则。...如代码片段所示,FoobarController类型上标注了三个特性,分别是用来指定AreaAreaAttribute、过滤器特性FoobarAttribute和设置ApiExplorerApiExplorerSettingsAttribute...如下面的代码片段所示,我们利用在方法中注入ApplicationModelProducer对象根据FoobarController类型创建一个ApplicationModel对象,并将包含在该对象中用来描述...如下面的代码片段所示,这是一个Model类型为ControllerModel强类型View,,它将ControllerModel承载元数据呈现在一个表格中。

7710

耗时很长服务器端事件中让客户端得到中间过程信息合理解决方案(续)

再次感谢作者 说一句:目的是为了让人们熟悉一下思路知道这个系统该怎么入手,怎么做,能写出个方案来.重点不在面向对象,设计模式上 好先看代码(自认为注释还算详细) 一:一些客户端东西 第一个js...,最好不要返回一个list,返回一个bool最好了(具体不细说)                 IList temps = tempBll.GetTemp(admin_id..., 请在下面留言提问, 我会及时回复 另:有些大侠看见了东西估计要鄙视一下了,什么OO啊,什么模式啊都没用 其实这个项目根本就没写需求分析,没画这个图那个图 最初只是为了给某网站开发一个邮件反馈功能...后来他们觉得好用,说要加钱,给我弄成自动反馈....后来有觉得好用,说我们要邮件营销,能不能给我们弄成群发, 汗,然后就这样了

1.1K20

Google Guava 集合工具类

Lists.newArrayListWithExpectedSize(100); Set approx100Set = Sets.newHashSetWithExpectedSize(100); //Guava引入新集合类型没有暴露原始构造器...().next()比较;FluentIterable.first() getLast(Iterable) 返回iterable最后一个元素,若iterable为空则抛出NoSuchElementException...是一个Collection实例,则实际操作将会委托给相应Collection接口方法。...所有的不可变集合实现都比可变集合更加有效利用内存 (analysis) *  4.可以被使用为一个常量,并且期望在未来也是保持不变 * Guava提供了对JDK里标准集合类里immutable版本简单方便实现...当你不希望修改一个集合类,或者想做一个常量集合类时候,使用immutable集合类就是一个最佳编程实践 * 注意:每个Guava immutable集合类实现都拒绝null值。

1.1K20

VS2010 Extension实践(2)

上面提到了VS2010 Extension对编辑器编辑行为控制能力仅仅提供了通用,比如Cut/Copy/Paste等等,而其他诸如注释/取消注释代码,添加、删除、导航到Bookmark等程序员常用功能没有暴露出来...貌似走到了死胡同了,但是当我们使用IDE时候,却是可以很容易通过Edit菜单找到所有的功能,问题是,它们要怎样才能为我所用呢?...首先想到是在VSSDK中找找,结果一个名字看起来很顺眼接口撞到眼里,它就是IVsUIShell Interface(http://msdn.microsoft.com/en-us/library/...也就是说这是一个由IDE提供全局Service,可以创建、访问工具窗口和编辑窗口。浏览一下这个所有Member,发现了一个叫IVsUIShell.PostExecCommand(...)...下面是包装注释和取消注释代码片段: public static void ProcessComments(bool comment) { IVsUIShell shell = Package.GetGlobalService

1.1K90

C++ Primer 第11章 泛型算法 学习总结

11.3.5 五种迭代器 Input iterator(输入迭代器) 读,不能写;支持自增运算 Output iterator(输出迭代器) 写,不能读;支持自增运算 Forward iterator...(前向迭代器) 读和写;支持自增运算 Bidirectional iterator(双向迭代器) 读和写;支持自增和自减运算 Random access iterator(随机访问迭代器) 读和写;支持完整迭代器算术运算...区别带有一个值或一个谓词函数参数算法版本 很多算法通过检查其输入范围内元素实现其功能。...算法则用于查找一个使谓词函数 pred 返回非零值True元素 b....lst 和 lst2 不能是同一个 list 对象 lst.splice(iter, lst2, iter2) 第二版本移动 iter2 所指向元素,这个元素必须是 lst2 中元素。

96410

通过运行期类型检查实现泛型算法

但是这里存在一个问题,大部分序列都支持随机访问,那么如果输入序列支持 IList 这种写法就是多此一举,因为这种写法会创建出一份和源序列一摸一样序列。...要解决这个问题我们只需要修改一下 DemoEnumerable 构造函数然后增加一个参数为 IList 类型构造函数即可: public DemoEnumerable(IEnumerable...(IList sequence) { sreSequence = sequence; orgSequence = sequence; } Tip:这里之所以要修改源构造函数并增加一个参数类型为...IList 构造函数,是因为只有参数编译器类型是 IList 时候新构造函数才会生效。...一、第二次优化 上述代码基本上囊括了大部分情况,但有时我们还会遇到一些集合实现了 ICollection 而没有实现 IList 情况,这种情况下我们代码中 GetEnumerator 方法性能就不是很高了

59110
领券