news 2026/6/10 16:51:00

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

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

树莓派5+ubuntu24.04+openclaw使用记录

1 安装openclaw 参考连接&#xff08;一键安装openclaw&#xff09;&#xff1a; 官网 https://openclaw.ai/ 菜鸟 OpenClaw (Clawdbot) 教程 | 菜鸟教程 中文文档 https://holtchas.github.io/openclaw-docs-zh/sta…

作者头像 李华
网站建设 2026/6/10 15:37:03

告别Docker拉取超时!三分钟搞定镜像加速与配置文件优化

摘要&#xff1a;本文手把手教你解决Docker拉取镜像时常见的超时错误&#xff0c;通过配置国内镜像源和优化daemon.json文件&#xff0c;让你的Docker体验飞起来&#xff01;最近在部署Docker环境时&#xff0c;你是否也遇到过这样的报错&#xff1f; Error response from daem…

作者头像 李华
网站建设 2026/6/10 14:56:46

<span class=“js_title_inner“>让 AI 也能当“反洗钱专家“——一个通俗易懂的模型训练故事</span>

故事的开端&#xff1a;为什么要做这件事?想象一下,你是一家银行的合规专员。每天要面对厚厚的反洗钱法规文件,还要分析各种复杂的可疑交易案例。有些问题特别棘手:法律条文晦涩难懂,一个条款套着另一个条款真实的洗钱案例千奇百怪,要从蛛丝马迹中发现问题有时候一个问题涉及好…

作者头像 李华
网站建设 2026/6/10 14:53:52

堪比图吧工具箱!入梦工具箱 近百种硬件检测工具

下载链接https://pan.freedw.com/s/aHdahn给需要硬件检测的小伙伴推荐一款实用工具 —— 入梦工具箱&#xff0c;它和热门的图吧工具箱功能几乎一模一样&#xff0c;同样收集了近百种各类硬件检测工具&#xff0c;不管是检测电脑配置、排查硬件故障&#xff0c;还是性能测试&am…

作者头像 李华
网站建设 2026/6/10 16:02:52

梦笔记20260103

回家遇到侄女&#xff0c;说她是老奶抱大的&#xff0c;应该感恩。老姐在一个沙岛上&#xff0c;上班要坐飞机&#xff0c;先到陆地&#xff1f;出差到科大&#xff0c;交流工作。对方是个女的&#xff0c;问验收杀毒软件。我一愣&#xff1a;周总没说啊。回答呆会问问。问住宿…

作者头像 李华
网站建设 2026/6/10 14:44:24

<span class=“js_title_inner“>科技企业家 | 驭势科技吴甘沙:自动驾驶领域的“长跑者”</span>

当今科技创新已成为决定经济社会发展质量的关键。然而从“书斋”到“车间”&#xff0c;从“论文”到“产品”&#xff0c;创新之路绝非坦途。破局之道&#xff0c;则在于“人”。在“十五五”开局的关键节点&#xff0c;我们推出“科技企业家”系列报道&#xff0c;不为讲述个…

作者头像 李华