news 2026/10/15 20:02:55

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
<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.Parse或CInt),可以非常方便地进行分组、计数、求和、平均值等统计操作。


📌 数据结构说明

你的数据:

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 导入数据、日志解析等场景中非常常见且高效。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/13 6:49:18

光刻胶用屏蔽剂

一、光刻胶对光屏蔽剂性能的具体详细要求光屏蔽剂的核心作用是控制光在光刻胶膜中的传播行为&#xff0c;其主要性能要求可归纳为以下几点&#xff1a;精确的光学特性&#xff08;核心要求&#xff09;在曝光波长下具有高吸收系数&#xff08;α&#xff09;&#xff1a;这是最…

作者头像 李华
网站建设 2026/10/13 22:21:50

<span class=“js_title_inner“>1篇搞懂AI通识:大白话拆解核心点</span>

引言随着 AI 技术从实验室走向日常&#xff0c;“机器学习”“大模型”“Transformer”“MOE” 等词汇已不再是技术圈的专属。从智能聊天助手到电商推荐&#xff0c;从语音识别到自动驾驶&#xff0c;AI 正以多元形态融入生活。这篇文章按 “基础→核心→优化→落地→工具→术语…

作者头像 李华
网站建设 2026/10/14 5:33:05

which命令

which命令&#xff0c;查看所使用的一系列命令的程序文件存放在哪里语法:which要查找的命令find 用于查找指定的文件按文件名查找:find起始路径 -name"被查找文件名"支持通配符按文件大小查找:find 起始路径-size1-n[kMG]

作者头像 李华
网站建设 2026/10/15 13:29:27

<span class=“js_title_inner“>ZYNQ MPSOC VCU介绍</span>

1 什么是VCU?VCU 的全称是 Video Codec Unit&#xff0c;即视频编解码单元&#xff0c; Zynq UltraScale MPSoC 系列产品分为三种类型&#xff0c;分别是 CG 型器件、 EG 型器件和 EV 型器件&#xff0c; 其中只有 EV 型器件集成了 VCU。 VCU 适用于视频监控和网络视频连接应用…

作者头像 李华
网站建设 2026/10/13 2:23:11

企业级社区养老服务系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

摘要 随着人口老龄化进程的加快&#xff0c;社区养老服务需求日益增长&#xff0c;传统的养老服务模式已难以满足现代社会的需求。社区养老服务系统的数字化、智能化成为提升服务效率和质量的关键。企业级社区养老服务系统通过整合资源、优化管理流程&#xff0c;为老年人提供便…

作者头像 李华
网站建设 2026/10/13 17:49:04

企业级在线互动学习网站管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

摘要 随着信息技术的快速发展和教育模式的数字化转型&#xff0c;企业级在线互动学习平台成为提升员工培训效率和知识管理的重要工具。传统线下培训模式受限于时间和空间&#xff0c;难以满足现代企业灵活、高效的学习需求。在线学习系统通过实时互动、个性化课程推荐和数据分…

作者头像 李华