C# 将linq结果指定给对象变量,然后从该对象变量获取值

C# 将linq结果指定给对象变量,然后从该对象变量获取值,c#,winforms,linq,C#,Winforms,Linq,我遇到一种情况,需要将LINQ结果分配给按钮.Tag属性。 当该按钮单击时,在按钮.Tag中放置的LINQ结果中迭代 提示:LINQ结果是列表的类型。由于某些原因,我不知道返回什么列表 有什么想法吗? EDIT:正如大家所建议的,我重新考虑了这个问题,决定创建一个特定的类类型,并将DataTableRowId放在类中,而不是整个DataTableRow东西。 因此,像new{Class1=c1,Class2=c2,DataTableRow3=dr3}这样的匿名类型更改为 类型的类别: publi

我遇到一种情况,需要将
LINQ结果
分配给
按钮.Tag
属性。 当该按钮单击时,在
按钮.Tag中放置的
LINQ结果
中迭代 提示:LINQ结果是
列表的类型。由于某些原因,我不知道返回什么
列表

有什么想法吗?
EDIT:正如大家所建议的,我重新考虑了这个问题,决定创建一个特定的类类型,并将
DataTableRowId
放在类中,而不是整个
DataTableRow
东西。
因此,像
new{Class1=c1,Class2=c2,DataTableRow3=dr3}这样的匿名类型更改为
类型的类别:

public class CustomClass
{
    public Class1 c1 { get; set; }
    public Class c2 { get; set; }
    public int DataTableRow3Id dr3 { get; set; }
}

您不能通过这种方式访问匿名类型,您可以创建一个自定义类并创建该自定义类型的linq结果。将此对象指定给标记,然后将其类型转换回您的自定义类型。

您所说的“出于某种原因”是什么意思?这显然是您可以向我们解释的信息……所以dynamic不适合您?@Jon Skeet created
anonymousType
是一些常见类和一行特定类的组合DataTable@Rzassar:那么,为什么这意味着您不想为结果创建类型?基本上,您没有说明为什么必须在这里使用匿名类型。@MEYWD:我不知道这里涉及的是内部.NET Framework UI类型,也不认为有必要使用
动态
。OP可以使用
动态
,但我怀疑创建一个特定类型来封装结果会更干净。