当前位置: 首页 > web >正文

C# ConcurrentDictionary 中获取指定范围的元素

要从 ConcurrentDictionary<string, SlaveInfo> 中获取第 2 到第 5 个元素(索引 1 到 4,因为索引从 0 开始),可以使用 LINQ 的 Skip() 和 Take() 方法。不过需要注意的是,ConcurrentDictionary 是无序集合,获取的元素顺序可能不固定。

以下是实现方法:

using System;
using System.Collections.Concurrent;
using System.Linq;class Program
{static void Main(){// 创建示例ConcurrentDictionaryConcurrentDictionary<string, SlaveInfo> node_E8030312 = new ConcurrentDictionary<string, SlaveInfo>();// 添加示例数据for (int i = 1; i <= 10; i++){node_E8030312.TryAdd($"Key{i}", new SlaveInfo { Id = i, Name = $"Slave{i}" });}// 获取第2到第5个元素(索引1到4)var rangeItems = node_E8030312.Skip(1).Take(4).ToList();// 输出结果Console.WriteLine("获取第2到第5个元素:");foreach (var item in rangeItems){Console.WriteLine($"Key: {item.Key}, Value: Id={item.Value.Id}, Name={item.Value.Name}");}}
}// 示例类
class SlaveInfo
{public int Id { get; set; }public string Name { get; set; }
}

这段代码的核心是使用 Skip(1).Take(4)

  • Skip(1) 跳过第一个元素(索引 0)
  • Take(4) 获取接下来的 4 个元素(索引 1-4)

如果需要按照特定顺序获取元素(比如按照键排序),可以先排序再取范围:

// 按照键排序后获取范围
var sortedRange = node_E8030312.OrderBy(kv => kv.Key)  // 按键排序.Skip(1).Take(4).ToList();

或者,如果你的 SlaveInfo 类有特定的属性需要排序:

// 按照SlaveInfo的Id属性排序后获取范围
var sortedByIdRange = node_E8030312.OrderBy(kv => kv.Value.Id).Skip(1).Take(4).ToList();

需要注意的是,ConcurrentDictionary 的元素顺序是不确定的,除非你显式排序。如果元素的顺序对你很重要,建议使用其他有序集合或在查询时明确指定排序方式。

http://www.xdnf.cn/news/13609.html

相关文章:

  • 安卓中草药宝典 V2.6上千种中草药知识学习
  • STM32学习之不同FLASH的芯片启动文件选择规则
  • 场外期权看涨如果跌了本金还在不在?
  • 如何防止任务在多个项目中重复执行
  • C++面试(5)-----删除链表中指定值的节点
  • Python从入门到荒废-无网络Linux系统安装matplotlib
  • 电路板的 “双面绣”:猎板双色油墨如何重塑电子制造新范式
  • 人工智能AI
  • Unity3D Mono与IL2CPP区别详解
  • 关于主流电商官方API接口采集有哪些优势?
  • jpeg与 Mjpeg数据格式有什么区别
  • 大模型笔记_模型微调
  • Maven 之 打包项目时没有使用本地仓库依赖问题
  • 企业如何高效构建BI团队,解锁数据价值新高地?
  • 摩擦非线性随动电机位置误差控制系统
  • C# OAuth2密码模式接口鉴权
  • 前端面试题之将自定义数据结构转化成DOM元素
  • 面壁智能MiniCPM4.0技术架构与应用场景
  • 雷卯针对易百纳G16DV5-IPC-38E型主控板防雷防静电方案
  • Sentinel介绍
  • java大文件分段下载
  • (ML-Agents) 是一个开源项目,它使游戏和模拟能够作为使用深度强化学习和模仿学习训练智能代理的环境
  • Java SE - 类和对象入门指南
  • MCP 协议系列序言篇:开启 AI 应用融合新时代的钥匙
  • 爬取汽车之家评论并利用NLP进行关键词提取
  • 2025.6.11总结
  • RuoYi 前后端分离项目 Linux 部署全指南
  • 第四章无线通信网
  • 安卓15开机启动Fallbackhome去除--成果展示
  • 看板中如何管理技术债务