【问题标题】:JavaScript Array vs C# ArrayJavaScript 数组与 C# 数组
【发布时间】:2013-12-22 08:57:28
【问题描述】:

这个 JavaScript 数组显示的是什么类型的数组? 1 维、2 维还是 3 维?还有这个数组在 C# 中的确切表示形式是什么?

var arr = new Array ([34.01843, -118.491046], [34.006673, -118.486562], [34.009714, -118.480296], [34.010408, -118.473215], [34.01521, -118.474889], [34.022502, -118.480124],
            [34.024423, -118.459868], [34.024885, -118.44871], [34.002368, -118.482828], [34.003791, -118.473001], [34.015922, -118.457422], [34.022147, -118.457894],
            [34.028904, -118.46725], [34.030114, -118.481326], [34.03143, -118.494029], [34.031643, -118.504758], [34.029616, -118.515058], [34.001834, -118.451414]);

这个数组中值的数据类型是双精度的。

【问题讨论】:

  • 项目数组,每个数组由 2 个双精度数组成。double[][] arr;
  • 以及为什么会有php标签???
  • 'double' 不是 JavaScript 类型。 JavaScript 变量没有显式声明,它是由运行时推断的。在您的 sn-p 中,类型将被推断为“数字”
  • 如前所述,确切的表示将是双精度数组 (double[][]) 的数组,现在在我看来,您想知道其他内容,否则您不会添加 jquery 标记.你想知道如何使用 jquery 正确地将这种类型传递给 C# 吗?

标签: c# javascript jquery arrays


【解决方案1】:

这是一个锯齿状数组,其中每个内部数组的长度为 2。

在 C# 中,您可以使用:

var arr = new [] {
    new[]{34.01843, -118.491046}, new[]{34.006673, -118.486562}, new[]{34.009714, -118.480296},
    //...
};

这是一个double[][];但是,您也可以选择使用 double[,] 代替(但它会具有不同的语义):

var arr = new [,] {
    {34.01843, -118.491046}, {34.006673, -118.486562}, {34.009714, -118.480296},
    //...
};

【讨论】:

    【解决方案2】:

    嗯,从技术上讲,它在 c# 中没有“精确表示”,这取决于数据在每一端是如何序列化和反序列化的。

    我敢冒险,List<Tuple<double,double>> 这样的东西在 c# 端会是更合适的数据类型。

    【讨论】:

    • 由于在 js 中您可以推送到内部项目,而内部项目只有索引访问 - 我认为List<List<double>> 会更接近
    • 当然,但我正在假设真正描述的是一对列表。我可能错了。
    猜你喜欢
    • 2015-11-13
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    相关资源
    最近更新 更多