惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

小众软件
小众软件
博客园_首页
M
MIT News - Artificial intelligence
雷峰网
雷峰网
GbyAI
GbyAI
博客园 - 叶小钗
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
S
SegmentFault 最新的问题
H
Help Net Security
Apple Machine Learning Research
Apple Machine Learning Research
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 【当耐特】
V
Visual Studio Blog
月光博客
月光博客
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
腾讯CDC
云风的 BLOG
云风的 BLOG
美团技术团队
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
有赞技术团队
有赞技术团队

博客园 - 桂素伟

Semantic Kernel:开启MCP Semantic Kernel:Phi-4 mini的tools .NET10:解决json序列化时引用自己 Semantic Kernel:接入本地deepseek-r1:1.5b Semantic Kernel:接入azure中的deepseek-r1 C#中的Channel .NET9中基于策略角色验证的包冲突 .NET9中使用Options Semantic Kernel:OpenAPI的Plugin Semantic Kernel:Phi-4试用 AI应用开发的浅见 Semantic Kernel:Process Semantic Kernel:新Agent代理 UnitsNet 库简介 .NET9里WinForm更新了什么 SemanticKernel系列,AI系列,SmartFill介绍视频系列 更流畅的asp.net api的错误返回 用.srt字幕文件生成.wav语音 自制实时翻译小工具
.NET10:字符数字
桂素伟 · 2025-03-10 · via 博客园 - 桂素伟

   生成式AI早期有一个测试题,就是让AI回答0.9和0.11那个大,早先的版本的AI回答0.11大,还引来大家对AI“智力”的讨论。今天,咱们说一下在不同的场景下,0.11还真比0.9大。

  看这样一个实例:

foreach (string version in new[] { "v0.0.0.1", "v0.0.0.2", "v0.0.0.11" }.Order())
{
    Console.WriteLine(version);
}

  运行结果如下,它是按ASCALL的序列进行输出的:

v0.0.0.1
v0.0.0.11
v0.0.0.2

  但从版本号这个角度看,应该是v0.0.0.2比v0.0.0.11小。.NET10的第一个预览版带来了解决方案:

var numericStringComparer = StringComparer.Create(CultureInfo.CurrentCulture, CompareOptions.NumericOrdering);
foreach (string version in new[] { "v0.0.0.1", "v0.0.0.2", "v0.0.0.11" }.Order(numericStringComparer))
{
    Console.WriteLine(version);
}

  运行结果:

v0.0.0.1
v0.0.0.2
v0.0.0.11

  另外用这个数字比较对象还可以比较如下两个数字,虽然是字符串,但比较的结果是相等。

var numericStringComparer = StringComparer.Create(CultureInfo.CurrentCulture, CompareOptions.NumericOrdering);
Console.WriteLine(numericStringComparer.Equals("01008", "1008"));

  再看一个在集合中的应用,在排序字典中,使用数字比较对象

var numericStringComparer = StringComparer.Create(CultureInfo.CurrentCulture, CompareOptions.NumericOrdering);
var versions = new SortedDictionary<string, string>(numericStringComparer)
{
    ["v0.0.0.11"] = "第十一个版本",
    ["v0.0.0.1"] = "第一个版本",
    ["v0.0.0.2"] = "第二个版本",
};
foreach (var version in versions)
{
    Console.WriteLine($"{version.Key} {version.Value}");
}
Console.WriteLine("-----------------");
Console.WriteLine(versions["v0.0.0.02"]);

  结果如下:"v0.0.0.02"与"v0.0.0.2"是相同的

v0.0.0.1 第一个版本
v0.0.0.2 第二个版本
v0.0.0.11 第十一个版本
-----------------
第二个版本

  文章来源微信公众号

  想要更快更方便的了解相关知识,可以关注微信公众号 

****欢迎关注我的asp.net core系统课程****
《asp.net core精要讲解》 https://ke.qq.com/course/265696
《asp.net core 3.0》 https://ke.qq.com/course/437517
《asp.net core项目实战》 https://ke.qq.com/course/291868
《基于.net core微服务》 https://ke.qq.com/course/299524