【问题标题】:Visual Studio 2015 Convert.ToDouble gives error while trying to watch lambda expressionVisual Studio 2015 Convert.ToDouble 在尝试观看 lambda 表达式时出错
【发布时间】:2015-08-08 05:54:22
【问题描述】:

我正在尝试 VS 2015,众所周知,最酷的功能之一是能够在观察窗口中观察 lambda 表达式。

我创建了一个控制台应用程序来测试它,这里是它的代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WatchLambdaExpressions
{
    class Program
    {
        static void Main(string[] args)
        {
            var books = new List<Book>() {new Book()
            {
                Author="J.K.Rowling",
                Rating="5",
                Title="Harry Potter"
            },
            new Book()
            {
                Author="Baroness Orczy",
                Rating = "4.8",
                Title="Scarlet Pimpernell"
            },
            new Book()
            {
                Author = "J.R.R.Tolkein",
                Rating="5",
                Title="Lord of the Rings"
            },
            new Book()
            {
                Author="Alexander Dumas",
                Rating="4.9",
                Title="Count of Monte Cristo"
            },
            new Book()
            {
                Author="Robert Ludlum",
                Title = "Bourne Identity",
                Rating = "4.6"
            }
            };

            var selectedBooks = books.Where(b => Convert.ToDouble(b.Rating) >= 4.8);

        }
    }

    public class Book
    {
        public string Title { get; set; }

        public string Author { get; set; }

        public string Rating { get; set; }
    }
}

我在调试模式下运行程序,并在 Main 方法的退出点设置了一个断点。

好的,现在我去观察窗口写:

books.Where(b => Convert.ToDouble(b.Rating) >= 4.8)

我希望上述内容能够评估和过滤并向我显示 rating >= 4.8 的书籍列表,但它显示了

错误:调试器无法评估此表达式

你知道为什么吗?

不过,我可以观察其他 lambda 表达式。

这很好用:

books.Where(b => b.Title.Contains("Harry"))

【问题讨论】:

  • String 是否始终包含有效数字? Convert.ToDouble 否则会抛出异常。
  • 是的,先生,它总是包含一个有效的数字。我自己创建列表并完全控制数据。

标签: c# lambda visual-studio-2015 visual-studio-debugging


【解决方案1】:

Visual Studio 2015 Update 1 修复了这个问题。所以我认为这已经解决了。谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    相关资源
    最近更新 更多