0

我有一个查询要根据条件返回计数

 var query = (from a in this.db.Servers    
 where (a.Date >= fromDP.SelectedDate.Value && a.Date <= toDP.SelectedDate.Value)   
 group a by EntityFunctions.TruncateTime(a.Date) into p
 select new { b = p.Count()}).OrderBy( x=> x.b);                              
            

编辑

当像这样绑定到 ListBox 的 ItemSource 时,

 dummy.ItemsSource = query.ToList();

XAML

  <ListBox x:Name="dummy"  ItemsSource="{Binding}" />

它显示这样的输出

在此处输入图像描述

如何避免此处的成员分配“b”并仅显示整数值?可能吗

4

3 回答 3

3

您在调试器中看到了这一点(我猜)。由于您使用in select 选择Anonymous 类型,因此是保存该值的属性的名称。newb

您可以打印这些值,例如:

foreach(var item in query)
    Console.WriteLine(item.b);

使用上面的代码,您将只获得值。

编辑: 从现在开始,问题已经用 ListBox 进行了编辑,

不要投影到匿名类型。简单地说select p.Count,您的查询将是:

var query = (from a in this.db.Servers    
where (a.Date >= fromDP.SelectedDate.Value && a.Date <= toDP.SelectedDate.Value)   
group a by EntityFunctions.TruncateTime(a.Date) into p
select p.Count()).OrderBy( x=> x);  //Remove new and b
于 2013-05-06T09:46:16.643 回答
3

只是猜测您应该通过直接选择 count 来避免在此处使用匿名类型

var query = (from a in this.db.Servers    
             where (a.Date >= fromDP.SelectedDate.Value 
                           && a.Date <= toDP.SelectedDate.Value)   
             group a by EntityFunctions.TruncateTime(a.Date) into p
             select p.Count()).OrderBy(x => x);  
于 2013-05-06T09:47:16.970 回答
1

以上所有解决方案都是正确的,但我们可以设置DisplayMemberPath并轻松实现您想要的

dummy.ItemsSource = query.ToList();
dummy.DisplayMemberPath = "b";

DisplayMemberPath

获取或设置源对象上的值的路径以用作对象的可视化表示。

于 2013-05-06T10:05:05.880 回答