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

<span class=“js_title_inner“>在 VB.NET 中,LINQ如何统计列表类型“List(Of String())”</span>

LINQ(Language Integrated Query) 是一种强大而直观的查询语言,集成于 .NET 语言中,用于对集合、数组、数据库、XML 等数据源进行查询和操作。在统计分析场景中,LINQ 提供了丰富的聚合函数(如 Count、Sum、Average、Min、Max、GroupBy 等),可以快速完成常见的统计任务

'下面以一个例子 List(Of String()) 跟大家一起学习如何用Linq进行统计Dim list As New List(Of String()) From { {"A", "85","90"}, {"A", "78","92"}, {"B", "81","94"}, {"B", "80","49"},}

你提供的List(Of String())结构虽然以字符串形式存储了“类别”和“数值”,但通过LINQ配合适当的类型转换(如Integer.ParseCInt),可以非常方便地进行分组、计数、求和、平均值等统计操作。


📌 数据结构说明

你的数据:

Dim list As New List(Of String()) From { {"A", "85", "90"}, {"A", "78", "92"}, {"B", "81", "94"}, {"B", "80", "49"}}
  • 第 0 列:分组键(如班级 "A"、"B")

  • 第 1 列:成绩1(字符串形式)

  • 第 2 列:成绩2(字符串形式)


✅ 常见 LINQ 统计操作示例(VB.NET)

⚠️ 注意:为安全起见,建议先过滤掉无效或空值。这里假设数据格式正确。


1.按第0列分组,并计算每组记录数(Count)

Dim groupCounts = From row In list Group By Key = row(0) Into Group Select New With { .GroupKey = Key, .Count = Group.Count() }For Each g In groupCounts Console.WriteLine($"组 {g.GroupKey}: {g.Count} 条记录")Next' 输出:' 组 A: 2 条记录' 组 B: 2 条记录

2.按组计算第1列(成绩1)的总分(Sum)

Dim sumScore1 = From row In list Group By Key = row(0) Into Group Select New With { .GroupKey = Key, .TotalScore1 = Group.Sum(Function(r) CInt(r(1))) }For Each g In sumScore1 Console.WriteLine($"组 {g.GroupKey} 成绩1总分: {g.TotalScore1}")Next' 输出:' 组 A 成绩1总分: 163' 组 B 成绩1总分: 161

3.按组计算第2列(成绩2)的平均分(Average)

Dim avgScore2 = From row In list Group By Key = row(0) Into Group Select New With { .GroupKey = Key, .AvgScore2 = Group.Average(Function(r) CDbl(r(2))) }For Each g In avgScore2 Console.WriteLine($"组 {g.GroupKey} 成绩2平均分: {g.AvgScore2:F2}")Next' 输出:' 组 A 成绩2平均分: 91.00' 组 B 成绩2平均分: 71.50

4.筛选出成绩2低于60的记录(Where)

Dim failed = From row In list Where CInt(row(2)) < 60 Select rowConsole.WriteLine("成绩2不及格的记录:")For Each r In failed Console.WriteLine($"[{String.Join(", ", r)}]")Next' 输出:' [B, 80, 49]

5.更复杂的:每组中成绩1 + 成绩2 的总分之和

Dim totalSumPerGroup = From row In list Group By Key = row(0) Into Group Select New With { .GroupKey = Key, .TotalCombined = Group.Sum(Function(r) CInt(r(1)) + CInt(r(2))) }For Each g In totalSumPerGroup Console.WriteLine($"组 {g.GroupKey} 总分合计: {g.TotalCombined}")Next' 输出:' 组 A 总分合计: 347 ' (85+90)+(78+92) = 175+170' 组 B 总分合计: 304 ' (81+94)+(80+49) = 175+129

🔒 安全建议:处理可能的无效数据

如果数据可能包含空值、非数字字符串等,应增加容错:

Dim safeQuery = From row In list Where row IsNot Nothing AndAlso row.Length >= 3 AndAlso Integer.TryParse(row(1), Nothing) AndAlso Integer.TryParse(row(2), Nothing) Group By Key = row(0) Into Group Select New With { .GroupKey = Key, .Avg1 = Group.Average(Function(r) CInt(r(1))), .Avg2 = Group.Average(Function(r) CInt(r(2))) }

✅ 总结

尽管你的数据是List(Of String()),只要你知道各列的含义,就可以:

  • 使用Group By按分类字段分组

  • 使用CInt/CDbl转换字符串为数值

  • 应用Sum,Average,Count,Where等 LINQ 聚合函数

这在处理 CSV 导入数据、日志解析等场景中非常常见且高效。

http://www.jsqmd.com/news/336035/

相关文章:

  • <span class=“js_title_inner“>并行工作流(Parallelization Workflow)【智能体开发模式】</span>
  • <span class=“js_title_inner“>C程序用的C11标准,库还是C99的,会不会有兼容性问题?</span>
  • <span class=“js_title_inner“>【Java 25】Class-File API,解析、生成和转换 Java 字节码的标准 API</span>
  • <span class=“js_title_inner“>[今日战况]创新高了!黄金有色吃大肉!ETF三因子轮动实盘跟踪!股票量化分析工具QTYX-V3.3.6</span>
  • <span class=“js_title_inner“>彻底爆了!阿里最新大模型,再次拿下第一!</span>
  • <span class=“js_title_inner“>[NEW]六边形量化框架升级,全自动三因子轮动策略!股票量化分析工具QTYX-V3.3.5</span>
  • <span class=“js_title_inner“>对话段永平:做自己能够喜欢的事情很重要</span>
  • <span class=“js_title_inner“>支配树算法原理及鸿蒙工具实践</span>
  • 2026年口碑好的柬埔寨至东莞国际物流专线/东莞至柬埔寨国际物流专线往返综合情况汇总 - 行业平台推荐
  • 2026年知名的柬埔寨老拗至东莞国际物流专线/金瑞通国际物流专线服务情况参考 - 行业平台推荐
  • <span class=“js_title_inner“>AI也“做梦”和“减肥”?一文读懂大模型的幻觉与蒸馏</span>
  • Cybersecurity AI (CAI) AI 时代的网络安全自动化框架
  • 【工具】Python解释器和PyCharm的安装与使用
  • 2026年靠谱的威海法律咨询律师事务所/威海金融律师事务所本地选择建议榜 - 行业平台推荐
  • 2026年比较好的威海法律咨询律师事务所/威海离婚律师事务所本地口碑推荐榜 - 行业平台推荐
  • 2026年热门的储能/电化学储能厂家推荐必看 - 行业平台推荐
  • 2026年,如何甄选一家诚信可靠的工程石材供应商? - 2026年企业推荐榜
  • 2026年评价高的混合储能/西安石油矿山储能厂家信誉综合参考 - 行业平台推荐
  • 树莓派5+ubuntu24.04+openclaw使用记录
  • 2026年知名的西安长循环寿命电池/液流电池用户口碑认可参考(高评价) - 行业平台推荐
  • 深度解析:如何选择可靠的热蒸发镀膜机技术团队 - 2026年企业推荐榜
  • 2026河北镀膜机优质企业综合评测与选型指南 - 2026年企业推荐榜
  • 2026年初优质金属锥体供应商综合评估与选型指南 - 2026年企业推荐榜
  • 河北原子层沉积镀膜机服务团队综合评估与精选推荐 - 2026年企业推荐榜
  • 2026年江苏封头厂家综合实力对比与选购指南 - 2026年企业推荐榜
  • 2026年企业大模型优化服务商选型指南与市场全景分析 - 2026年企业推荐榜
  • 2026年初武汉广告装饰公司选购指南与优质服务商推荐 - 2026年企业推荐榜
  • 2026年江苏封头制造厂商综合实力评估与选购指南 - 2026年企业推荐榜
  • <span class=“js_title_inner“>黄渤把亲父送养老院,主持人问他:你年入过亿,还送养老院?黄渤含泪说出7个字</span>
  • 2026年湖北LOWE玻璃实力公司深度盘点与选购指南 - 2026年企业推荐榜