gpt4 book ai didi

c# - LINQ 在字符串上使用 Select 返回奇怪的值

转载 作者:行者123 更新时间:2023-11-30 13:22:25 28 4
gpt4 key购买 nike

此代码返回 int 49

IEnumerable<int> numbersList = numbers.Select(x => Convert.ToInt32(x));

int sum = numbersList.Sum();

numbers 变量是一个值为 1 的字符串。

如果我用

numbers.Split(',').Select(x => Convert.ToInt32(x));

然后我得到了正确的答案。我知道 split 会传回一个字符串数组,所以我使用了一个值为 1 的字符串数组而不是拆分,这也很有效。

string[] sa = new string[] { "1" }

我的问题是有人知道为什么在字符串上使用 select 会返回错误的值吗?

谢谢。

最佳答案

当您使用 numbers.Select() 时,您将字符串视为一个集合。它是一个集合,但不是子字符串的集合而是字符的集合。

您得到的结果与 numbers 是一个字符数组相同,即 { '1' }

Convert.ToInt32('1')的结果是'1'的字符编码,即49。

关于c# - LINQ 在字符串上使用 Select 返回奇怪的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24179214/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com