问题标签 [anonymous-types]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
79426 浏览

c# - 如何从使用 LINQ to SQL 的 c# 方法返回匿名类型

可能重复:
LINQ to SQL:返回匿名类型?

我有一个标准的 LINQ to SQL 查询,它将数据作为匿名类型返回(包含大约 6 列各种数据类型的数据)。

我想让这个返回的对象可用于程序的其他部分,要么将其返回给方法调用者,要么将其分配给包含该方法的对象的属性。

鉴于它是匿名类型(“var”),我该怎么做?

编辑 - 这是代码:

0 投票
3 回答
11258 浏览

linq - 匿名类型的 IEqualityComparer

我有这个

如果允许,我想这样做

我尝试使用通用LambdaComparer,但由于我使用匿名类型,因此没有与之关联的类型。

“帮帮我欧比旺克诺比,你是我唯一的希望”

0 投票
2 回答
4312 浏览

vb.net - Linq,VB - 匿名类型无法转换为匿名类型

我是Linq noobie,也许有人可以指出我正确的方向。这里有什么问题?这些匿名类型似乎具有相同的签名。

我希望在上面的代码中有一些突出显示的方法,但是我得到了编译错误:

在“.Contains( New With{l1.id, l1.timestamp} )”

我假设它认为匿名类型在某种程度上是不同的,但是 id 和 timestamp 列在任一列表中都是相同的。它们的顺序也相同。两者之间还有什么不同?

[编辑 2009 年 7 月 10 日 16:28 EST]

我尝试了用户 Meta-Knight 的建议代码(使用 {Key l1.id, l1.timestamp} 新建),它修复了编译错误。但是,当我使用 List1 和 List2 运行代码时,如下所示:

结果是:

它应该是一个空列表。

0 投票
5 回答
133082 浏览

c# - 如何在 C# 中访问匿名类型的属性?

我有这个:

...我想知道我是否可以获取匿名对象的“已检查”属性。我不确定这是否可能。尝试这样做:

if (nodes.Any(n => n["Checked"] == false)) ...但它不起作用。

谢谢

0 投票
2 回答
4959 浏览

c# - Repeater DataBound 事件中的匿名类型

我将 ASP.NET 中继器的 DataSource 设置如下:

现在,在转发器的 OnDataBound 事件中,如何从 e.Item.DataItem 中包含的匿名类型中检索 RepName 和 Target 属性?

非常感谢

0 投票
3 回答
9949 浏览

c# - 我可以将属性与匿名类一起使用吗?

我有一个匿名类:

无论如何要将属性附加到这个类?反射,其他?我真的很希望这样的事情:

0 投票
2 回答
340 浏览

c# - 寻找一种通用的方法来处理 Linq 报告并以 XML 形式返回结果

我正在为我的项目设计一个报告引擎。该项目将有几个报告,每个报告都可以表示为一个Linq查询;有些会有参数,而有些则没有。

现在为了满足客户的要求,我需要以 XML 格式返回查询结果,以便他们可以根据自己的喜好应用 XSL 转换使其看起来漂亮。

所以,到目前为止,我的计划是有一个抽象Report基类,我的所有报告都将从中派生出来。基类将需要以下方法:

再充实一点:这SetParameter()是不言自明的。 GetData()应该包含 Linq 查询,并返回一个IEnumerable<'a>类型,其中'a是最终结果的匿名类型。但很明显,您不能将某些东西声明为匿名类型,因此我需要一些其他通用方式来关联我的 Linq 查询的结果——一种允许我遍历返回的字段并创建适当的 XML 模式的方式。

返回类型应该GetData()是什么?如何获取字段名称/值?或者,有没有更好的方法来实现我的目标?

0 投票
1 回答
4262 浏览

c# - 克隆匿名类型?

我想要做的是将 IEnumerable 传递给一个方法并让它返回 IEnumerable 的副本。但是,我希望集合中的每个都是副本,而不仅仅是集合是副本。

一个例子:

因此集合“finalData”的项目数是“data”或“dataCopy”的两倍。所以 'dataCopy' 中的所有 'b' 参数都在末尾附加了“1”,但由于它们仍然引用 'data' 中的对象,所以 'data' 中的所有 'b' 参数也都附加了“1”结尾。

由于这些是匿名类型,我不能简单地使用 BinaryFormatter 方法“克隆”对象,因为匿名类型不可序列化。而且我无法使用 Activator.CreateInstance 从头开始​​创建新的,因为匿名类型没有无参数构造函数。

我意识到我可以通过最初将我的数据选择到一个标记为可序列化的类中来解决这个问题,但我真的不想修改那么多代码,因为每次我查询数据库时,参数都会不同......

或者,有人可以推荐匿名类型的替代品吗?例如:

然后哪个会实现一个可克隆的接口?

0 投票
4 回答
455 浏览

c# - c#匿名方法是面向对象的吗?

我只是在检查匿名方法(在 c# 中)——我的一部分喜欢灵活性和简写,但我也担心它可能会使代码更难阅读。

我还想到,这种结构似乎与某些 o/o 范式背道而驰。你认为匿名方法符合面向对象的原则吗?

0 投票
2 回答
2034 浏览

c# - LINQ to SQL,匿名类型是只读的

我正在使用 LINQ to SQL 和 DataGridViews 创建数据库的可编辑用户界面。
我的问题是从数据库中获取结果时我必须翻译列名,因为虽然数据库中的所有名称都是英文(Visual Studio 类设计器支持的唯一语言),但我必须以不同的语言显示它们...

所以我想到了使用匿名类型:

(请注意,匿名类型的属性名称是匈牙利语[我必须显示的语言],翻译自英语。)

这导致 DataGridViews 是只读的。
我做了一些谷歌搜索,发现了这个: http: //blogs.msdn.com/swiss_dpe_team/archive/2008/01/25/using-your-own-defined-type-in​​-a-linq-query-expression。 .aspx _
根据这篇文章,我创建了一个名为“Bolt”(Shop 的匈牙利语等价物)的新类,并用翻译后的属性名称填充它,因此查询变为:

虽然对我来说并不完全清楚,但这如何使编辑 DataGridView 中显示的数据成为可能,我试了一下,得到了一个异常:

NotSupportedException:不允许在查询中显式构造实体类型“DataTest_L2SQL.Bolt”。

那么这样做的正确方法是什么?如何显示别名列名称,但仍保持数据可编辑?

非常感谢您!