将 double[] 添加到 C# 中的自定义堆栈

Add double[] to to custom stack in C#

我的问题是我无法将 double[] 推送到我的自定义堆栈。

if (int.TryParse(item[0], out intTemp))
{
   customStack.Push(parts.Skip(1).Select(int.Parse).ToArray());
}
else if(double.TryParse(item[0], out doubleTemp))
{
customStack.Push(parts.Skip(1).Select(double.Parse).ToArray());
}

第一个 if 语句有效,但第二个给了我一个例外 - CS1503:参数 1:无法从 'double[]' 转换为 'int'。

问题是我什至没有尝试将 'double[]' 添加到 'int'。

这是我的推送方法

public void Push(params T[] items)
    {
        foreach (T item in items)
        {
            this.stackData.Add(item);
            Console.WriteLine($"Element {item} added to stack.");
        }
    }

将不胜感激。

customStack好像是CustomStack<int>。所以你的 Push 方法需要一个 params int[] 参数。

parts.Skip(1).Select(double.Parse).ToArray() returns a double[] 编译器现在正尝试将其转换为 int[] items 参数的第一个元素,这会导致出现错误消息。