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

推荐订阅源

C
Check Point Blog
Microsoft Security Blog
Microsoft Security Blog
aimingoo的专栏
aimingoo的专栏
V
V2EX
博客园 - 【当耐特】
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
量子位
MyScale Blog
MyScale Blog
Hugging Face - Blog
Hugging Face - Blog
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
月光博客
月光博客
I
InfoQ
WordPress大学
WordPress大学
Martin Fowler
Martin Fowler
T
The Blog of Author Tim Ferriss
爱范儿
爱范儿
小众软件
小众软件
罗磊的独立博客
Recent Announcements
Recent Announcements
Blog — PlanetScale
Blog — PlanetScale
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

博客园 - 桂素伟

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