小编Kei*_*ith的帖子

如何在编译到不同的目标时暂时将一种原始类型替换为另一种原始类型?

如何使用这两种特殊的基本类型选择轻松/快速地替换浮点数(例如)以编译为两个不同的目标?

讨论:我有大量的c#代码正在开发中,我需要编译,或者根据目标程序集的用例使用float,double或小数.

使用像"类MYNumber:Double"这样的东西,只需要更改一行代码就行了,因为Double是密封的,显然C#中没有#define.使用#if #else语句来编写代码也不是一个选项,使用这些特定的基元类型支持数学运算符/相关代码太多了.

我对如何做这个看似简单的任务感到茫然,谢谢!

编辑:只是快速评论与凯莱回复中提到的拳击:不幸的是我需要避免拳击,主要是因为当需要最大速度时选择浮动,并且当最大准确度是优先级时的小数(并且取20x +性能命中是上可接受的).拳击可能会排除小数作为一个有效的选择,并在某种程度上打败目的.

编辑2:作为参考,那些建议将泛型作为这个问题的可能答案的人注意到有很多问题可以计算出泛型(至少对我们的需求而言).有关概述和进一步参考,请参阅使用泛型进行计算

c# replace compilation primitive-types c-preprocessor

5
推荐指数
1
解决办法
362
查看次数

使用Linq对锯齿状数组(求和,平均值,其他函数)进行列操作

假设我们有一个具有相等长度项数组的锯齿状数组(即忽略超出范围):

int[][] jaggedArray = new int[][] 
{
    new int[] {1, 3, 5},
    new int[] {0, 2, 4},
    new int[] {11,22,6}
};
Run Code Online (Sandbox Code Playgroud)

应用c#Linq执行列操作的最优雅方法是什么.简单列操作的示例结果Sum和Average:

Sum()列结果:int [] {12,27,15} Average()列结果:int [] {4,9,5} ...对列进行操作的任何其他类似扩展方法.

我能找到的最相关的问题就在这里.

感谢您的回答,我已经接受了Jay的答案,并在此处发布了一个类似但更复杂的列集合.

c# linq jagged-arrays

5
推荐指数
1
解决办法
1239
查看次数