gpt4 book ai didi

c# - 为什么一个带运算符的 lambda 表达式有效而另一个无效

转载 作者:行者123 更新时间:2023-11-30 23:30:27 25 4
gpt4 key购买 nike

我有一个 WPF 项目,其中包含一个名为 dataGrid 的数据网格。

我正在做一些测试,看看 lambda 表达式和运算符是如何工作的。

这是我的表 tUsers 中的数据:

enter image description here

我不明白为什么会这样:

this.dataGrid.ItemsSource = (from em in context.tUsers
select new { em.name }).ToList();

这将起作用并在数据网格中显示正确的名称。它看起来像这样: enter image description here

但如果我喜欢 .codeproject.com 上的教程:

this.dataGrid.ItemsSource = (from em in context.tUsers
select em.name).ToList();

这只会显示一些整数而不是名称。我不知道为什么。 enter image description here

所以我猜第一个将创建一个匿名对象并将 em.name 放入其中。但我不明白其中一个行得通而另一个行不通。

我对它为什么显示这些整数特别感兴趣。

能解释一下吗?

PS:我刚刚注意到整数实际上是字符串的长度。虽然我不知道为什么。

最佳答案

网格为您传递给它的可枚举类型的每个非索引器属性显示一列。

在第一种情况下,你传递了一个匿名类型的列表,它有一个 name 属性,它是一个字符串,所以它显示一个名为 name 的列,并且显示那些字符串。

在第二种情况下,您传递了一个字符串列表,并且字符串具有单个 Length 属性,因此它会创建一个名为 Length 的列并显示这些长度。

关于c# - 为什么一个带运算符的 lambda 表达式有效而另一个无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34987028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com