Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用元组调用方法?_C#_Methods_Ienumerable - Fatal编程技术网

C# 如何使用元组调用方法?

C# 如何使用元组调用方法?,c#,methods,ienumerable,C#,Methods,Ienumerable,我有一个如下所示的方法: public static IEnumerable<Tuple<double, double>> LargestTriangleThreeBuckets(List<Tuple<double, double>> data, int threshold) 如何调用这种方法?我现在有一系列的替身。我没有使用元组的经验。谢谢 更新:非常感谢大家。一点澄清:我正在对以192kHz采样的正交信号执行16k fft。对于通常小于192

我有一个如下所示的方法:

public static IEnumerable<Tuple<double, double>> LargestTriangleThreeBuckets(List<Tuple<double, double>> data, int threshold)
如何调用这种方法?我现在有一系列的替身。我没有使用元组的经验。谢谢

更新:非常感谢大家。一点澄清:我正在对以192kHz采样的正交信号执行16k fft。对于通常小于1920像素宽的显示器,需要对得到的16384个值进行下采样。为了做到这一点,我已经成功地实现了最大的三角形三块下采样例行程序。此例程在GitHub上可用

我从一个double数组开始,outputBuffer[16384],将其放入一个元组列表中,x值从1到16384,然后调用该方法

        var myList = new List<Tuple<double, double>>();

        for (int x = 0; x < fftOrder; x++)
        {
            myList.Add(new Tuple<double, double>(outputBuffer[x], x+1));
        }

        var result = LargestTriangleThreeBuckets(myList, 2048);

        temporaryBuffer = result.Select(item => item.Item1).ToArray();

        //output resulting buffer to the scope which is the user interface display of the signal

        scope1.Channels[0].Data.SetYData(temporaryBuffer, 0, fftOrder/8);
fftOrder=16384。代码在1毫秒内执行,足够快,可以实时显示。据我所知,与其他降采样方法相比,结果是一个显著的改进。
非常感谢所有在这里帮助过你的人

元组只是泛型对象。不管您如何使用元组,只要想象一下您创建了一个包含那么多适当类型项的类

例如,Tuple会将myObj.Item1作为字符串提供给您,将项目2和3作为整数提供给您。您可以这样使用它:

new Tuple<string, int, int>("Steve", 15, 22)
对于列表:

var myList = new List<Tuple<double, double>>();
myList.Add(new Tuple<double, double>(25, 23.333));
var result = LargestTriangleThreeBuckets(myList, 50);
怎么样

var result = LargestTriangleThreeBuckets(
    new List<Tuple<double, double>>
        {
            Tuple.Create(0.0, 0.0),
            Tuple.Create(2.0, 1.0),
            Tuple.Create(0.0, 2.0)
        },
    42);
我认为,你正在寻找的方法是


只是猜测而已,但是,或者从中得到的信息可能比元组更好地表示三角形的角。

与其他任何方法一样。您传入了正确的参数吗?在本例中,一个列表和一个int.可能的副本实际上不会编译。调用元组。创建或指定泛型参数。已修复。谢谢你让我知道,从内存编码XDHi,谢谢。因此,如果我从一维数组开始,即data[16384],我首先需要将其转换为一个包含两个值的列表?该数组包含直线图的Y值。我想我需要加上X值?嗨,汤姆。因为最大三角形方法需要一个列表,你是对的,它需要一个列表。是的,您需要添加x值,使它们成为x和的元组Y@Steve谢谢今天下午晚些时候我会试一试。我只希望表演足够好。我正在以192kHz的频率进行实时数据采集采样,并将其输入fft,然后输入图形。我在性能方面没有问题,一次平均16个完整的光谱,然后将其输入到图表中,这将是一个额外的步骤。太好了,谢谢你的帮助。这是我使用的方法的链接。。。