我的linq的返回类型是什么?

时间:2013-07-18 07:55:23

标签: wpf linq

我有2个表,并使用此查询选择一些记录。

   var temp = db.Letters
            .Where(l => !db.SendLetters.Any(s => s.LetterId == l.Id))
            .Select(l => new  { CreatedDate = l.CreatedDate, priority = l.priority, Subject = l.Subject);
  DashboardListView = CollectionViewSource.GetDefaultView(temp.ToList());

我有一个listview并将其与DashboardListView绑定

<ListView ItemsSource="{Binding DashboardListView}" SelectedItem="{Binding SelectedItem}"    sort:GridViewSort.AutoSort="True"   IsSynchronizedWithCurrentItem="True"   >
                    <ListView.View>
                        <GridView>
                            <GridView.Columns >
                               <GridViewColumn  DisplayMemberBinding="{Binding Subject}"  Width="170"  sort:GridViewSort.PropertyName="Subject"   />
                               <GridViewColumn DisplayMemberBinding="{Binding CreatedDate}"  Width="110"  sort:GridViewSort.PropertyName="CreatedDate"  />
                               <GridViewColumn  DisplayMemberBinding="{Binding priority}"   Width="80"  sort:GridViewSort.PropertyName="priority" />
                            </GridView.Columns>
                        </GridView>
                    </ListView.View>
                </ListView>

并将SelectedItem与SelectedItem属性绑定。当选择一行时,我想要获得selecteditem的项目。(Subject,CreatedDate,..)

SelectedItem as //type

我的linq的返回类型是什么?

1 个答案:

答案 0 :(得分:1)

您的LINQ语句返回

中创建的匿名类型的IEnumerable
.Select(l => new { ... });

来自Anonymous Types的备注部分:

  

匿名类型是直接从object派生的类类型   不能转换为除object之外的任何类型。编译器提供了一个   虽然您的应用程序无法访问,但每个匿名类型的名称   它。从公共语言运行时的角度来看,一个匿名的   type与任何其他引用类型没有区别。

因此,为了在其他地方使用该类型,您必须使用常规C#类替换它。