gpt4 book ai didi

c# - 关于查询linq结果的问题

转载 作者:行者123 更新时间:2023-11-30 22:43:29 24 4
gpt4 key购买 nike

当您查询现有的 linq 结果时,它们就像比原始结果深了一层。让我解释一下我的意思。

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

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

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());
}

最佳答案

你可以使用

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());
}

编辑:问题是

select new {TableData = a};

创建一个新的匿名类型,其中包含一个名为 TableData 的字段,如下所示

class Tmp1
{
TableType TableData {get; set;}
}

select new {All = a};

创建一个新的匿名类型,其中包含一个名为 TableData 的字段,如下所示

class Tmp2
{
Tmp1 All {get; set;}
}

编辑 2:
如果您直接选择一个,您不会创建额外的匿名类型,而是返回TableType

关于c# - 关于查询linq结果的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3927496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com