首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于查询Linq结果的问题

关于查询Linq结果的问题
EN

Stack Overflow用户
提问于 2010-10-14 03:56:17
回答 3查看 1.1K关注 0票数 2

当您查询现有的linq结果时,就好像它们被卡在比原始结果更深的一层。让我解释一下我这样说是什么意思。

在下面的示例中,在获取ResultSorted之后,要获取其中的数据,您必须使用RowSorted.All.TableData.Field,但在未排序的结果中,您可以只使用Row.TableData.Field。在排序后的数据中,您必须使用.All来获取其余的数据,这就像是一个额外的层来获取您要查找的数据。

我怎样才能得到它,这样我就可以查询结果,而不需要得到这个额外的层?谢谢Stack-O!

代码语言:javascript
运行
复制
var Result =
from a in Db.Table
select new {TableData = a};

var ResultSorted = 
from a in Result
orderby a.TableData.Field
select new {All = a};

foreach(var RowSorted in ResultSorted)
{
    MessageBox.Show(RowSorted.All.TableData.ToString());
}
EN

Stack Overflow用户

回答已采纳

发布于 2010-10-14 04:00:43

您可以使用

代码语言:javascript
运行
复制
var Result =
from a in Db.Table
select a;

var ResultSorted = 
from a in Result
orderby a.Field
select a;

foreach(var RowSorted in ResultSorted)
{
    MessageBox.Show(RowSorted.ToString());
}

编辑:事情是这样的

代码语言:javascript
运行
复制
select new {TableData = a};

使用名为TableData的字段创建一个新的匿名类型,如下所示

代码语言:javascript
运行
复制
class Tmp1
{
     TableType TableData {get; set;}
}

代码语言:javascript
运行
复制
select new {All = a};

使用名为TableData的字段创建一个新的匿名类型,如下所示

代码语言:javascript
运行
复制
class Tmp2
{
     Tmp1 All {get; set;}
}

编辑2:

如果直接使用select a,则不会创建额外的匿名类型,而是返回TableType

票数 3
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3927496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档