gpt4 book ai didi

c# - IEnumerable/Enumerable with Double/Int;初学者

转载 作者:行者123 更新时间:2023-11-30 23:15:09 25 4
gpt4 key购买 nike

我是 C# 的新手,来自 python,并且不清楚 IEnumerable 对象的行为,即使在阅读了 MSDN 文档之后也是如此。

例如,IEnumerable 需要一个 int,但下面的代码可以正常工作:

IEnumerable<double> squares = Enumerable.Range(1, 100).Select(x => Math.Pow(x, 2));

但是,

IEnumerable<double> square_ = Enumerable.Range(1, 100);

抛出编译错误,您不能将类型 'System.Collections.Generic.IEnumerable int' 隐式转换为 'System.Collections.Generic.IEnumerable double'

我不太确定这是否只是对 Enumerable 的工作方式、对象在 C# 中的工作方式或其他完全不同的东西的根本误解,非常感谢帮助和指导新手在何处阅读以获得更好的主意。

非常感谢。

最佳答案

因为 Math.Pow 返回 double , 所以 .Select(x => Math.Pow(x, 2));返回 IEnumerable<double> , 所以正是你声明的类型。

Enumerable.Range 返回 IEnumerable<int>IEnumerable<double> 不兼容.

显然你可以:

IEnumerable<double> squares = Enumerable.Range(1, 100).Select(x => (double)x);

这将转换 Enumerable.Range 的单个元素至 double , 通过使用 lambda 函数 int -> double (从 int x 返回 double )

关于c# - IEnumerable/Enumerable with Double/Int;初学者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42745389/

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