首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有更清晰的语法来将操作应用于序列的每个元素?

是否有更清晰的语法来将操作应用于序列的每个元素?
EN

Stack Overflow用户
提问于 2008-12-28 18:55:14
回答 7查看 527关注 0票数 2
代码语言:javascript
运行
复制
int z = 1;
double result = Math.Log(z);            //works

然而,尝试用数字数组做同样的事情是行不通的:

代码语言:javascript
运行
复制
int[] z = new [] {1,2,3,4};
double[] result = Math.Log(z);            //Syntax 1 - error CS1503: Argument '1': cannot convert from 'int[]' to 'double'
double[] result = z.Select(p => Log(p)).ToArray();  //Syntax 2 - OK

怎样才能让语法#1起作用?语法#2在我看来是肮脏的。

EN

Stack Overflow用户

发布于 2008-12-28 19:07:48

不太确定你在问什么,但是...

您可以为数组提供索引。

代码语言:javascript
运行
复制
for (int i = 0; i < z.Length; i++)
{
  Math.Log(z[i]);
}

虽然我认为不保留计算的价值是没有意义的?

编辑

您可能必须使用double数据类型,因为这是math.log返回的数据类型

代码语言:javascript
运行
复制
        static void Process()
        {
            double[] test = { 1, 2, 3, 4 };
            double[] answer = new double[test.Length];
            for (int i = 0; i < test.Length; i++)
            {
                answer[i] = Math.Log(test[i]);
            }

        }
票数 -1
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/396521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档