我有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的返回类型是什么?
答案 0 :(得分:1)
您的LINQ语句返回
中创建的匿名类型的IEnumerable.Select(l => new { ... });
来自Anonymous Types的备注部分:
匿名类型是直接从object派生的类类型 不能转换为除object之外的任何类型。编译器提供了一个 虽然您的应用程序无法访问,但每个匿名类型的名称 它。从公共语言运行时的角度来看,一个匿名的 type与任何其他引用类型没有区别。
因此,为了在其他地方使用该类型,您必须使用常规C#类替换它。