【问题标题】:C# Remove NaN from List<object> [closed]C# 从 List<object> 中删除 NaN [关闭]
【发布时间】:2014-12-09 22:01:21
【问题描述】:

我有一个 StackBuilder 类型的列表:

public class StackBuilder
{
    private int quoteID = 0;
    private double price = 0;
    private double size = 0;

    public int QuoteID
    {
        get { return quoteID; }
    }

    public double Price
    {
        get { return price; }
    }

    public double Size
    {
        get { return size; }
    }

    public StackBuilder(int quoteID, double price, double size)
    {
        this.quoteID = quoteID;
        this.price = price;
        this.size = size;
    }
}

我正在尝试删除所有价格等于 NaN 的元素。这是我所拥有的,但由于某种原因它不起作用。

BidStack.RemoveAll(item => item.Price == Double.NaN);
AskStack.RemoveAll(item => item.Price == Double.NaN);

有什么建议吗?

已解决:

BidStack.RemoveAll(item => Double.IsNaN(item.Price));
AskStack.RemoveAll(item => Double.IsNaN(item.Price));

【问题讨论】:

标签: c# list


【解决方案1】:

== 运算符在 NaN 上无法正常工作,请改用 Double.IsNaN(x)

【讨论】:

  • 它“有效” - 它只是不会为两个 NaNs 返回 true
  • 事实上,NaN 的一个特定特征是,NaN 的值不等于自身。 NaN 的有效表示也不止一种。
  • 效果很好,谢谢!! @戴
猜你喜欢
  • 2019-04-06
  • 2020-01-09
  • 2022-01-23
  • 1970-01-01
  • 2015-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-28
相关资源
最近更新 更多