• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

LINQ在DataGrid中输出两次数值

c/c++ 来源:Mike Diaz 4次浏览
 var query = from r in data.AsEnumerable() 
        select new Test 
           { 
            Name = r.Field<string>(0), 
            DateReported = r.Field<DateTime>(2) 
           }; 

     var newQuery = from i in query 
         orderby i.Name, i.DateReported 
         select i; 

     myData.DataContext = newQuery; 

所以问题是,我正在读取一个Excel工作表并对这些值进行迭代。如果我使用查询将DataContext绑定到DataGrid,那么一切正常。但是,当我将它绑定到newQuery每个项目被输出两次 enter image description hereLINQ在DataGrid中输出两次数值


===========解决方案如下:

AsEnumerable()看起来可疑;它可能有副作用,导致重复执行两次。

我承认我不会马上看到会发生什么;表面上你会认为select new Test{...}会强制立即进行评估,随后的查询只能对结果进行处理。但是当有人试图用他们的类型变得聪明的时候,我看到了陌生的东西……

什么类型是data


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)